Exemplo n.º 1
0
        private void OpenSettings()
        {
            IWindowManager    winManager = new SettingsWindowManager();
            SettingsViewModel vm         = new SettingsViewModel();

            vm.Settings = SettingsInstance;
            winManager.Show(vm);
            RaisePropertyChanged("SettingsInstance");
            DataManager.WriteFile(SettingsInstance, DataManager.FileType.Settings);
        }
Exemplo n.º 2
0
        private void OpenSettings()
        {
            IWindowManager    winManager = new SettingsWindowManager();
            SettingsViewModel vm         = new SettingsViewModel();

            vm.Settings = SettingsInstance;
            //Try update prices as soon as the app opens
            winManager.Show(vm);
            RaisePropertyChanged("SettingsInstance");
            DataManager.WriteFile(SettingsInstance, DataManager.FileType.Settings);
            Status = "";
        }
Exemplo n.º 3
0
        public ShellWindowViewModel(IConfigurationService configurationService, CreateItemViewModel creator, HistoryListViewModel historyList, SettingsWindowManager settingsManager)
        {
            _settingsManager    = settingsManager;
            _configurationAgent = configurationService.GetConfigurationAgent <ShellConfiguration>(ApplicationConfigurations.ShellConfiguration, this);

            _subscriptions = _configurationAgent.Updated.ObserveOnDispatcher().Do(x => { RefreshConfig(); }).Subscribe();

            Creator     = creator;
            HistoryList = historyList;

            ShowSettingsCommand = ReactiveCommand.Create(() => { _settingsManager.ShowSettingsWindow(); });

            RefreshConfig();

            PropertyChanged += (sender, e) => { PersistConfig(); };
        }
Exemplo n.º 4
0
        public WhisperTrayAgent(ShellWindow shellWindow, SettingsWindowManager settingsManager)
        {
            _shellWindow     = shellWindow;
            _settingsManager = settingsManager;

            _noticon = new NotifyIcon
            {
                BalloonTipText  = "Whisper is still running. Shhh!",
                BalloonTipTitle = "Whisper",
                Text            = "Whisper",
                Icon            = new Icon("WhisperIcon.ico")
            };

            _noticon.DoubleClick += (sender, e) => { RestoreApplication(); };

            _noticon.ContextMenu = new ContextMenu(new[]
            {
                new MenuItem("Restore", (sender, e) => { RestoreApplication(); }),
                new MenuItem("-"),
                //new MenuItem("Generators", ),
                new MenuItem("-"),
                new MenuItem("Settings", (sender, e) => { ShowSettings(); }),
                new MenuItem("Exit", (sender, e) => { CloseApplication(); })
            });

            shellWindow.SetNotificationTrayMinimiseAction(() => MinimiseApplication());

            shellWindow.IsVisibleChanged += (sender, e) =>
            {
                var isVisible = (bool)e.NewValue;

                if (isVisible)
                {
                    DismissTray();
                }
            };
        }
Exemplo n.º 5
0
        protected override async void OnStartup(StartupEventArgs e)
        {
            _applicationInstance = new WhisperApplication();

            // Initialise the application instance.
            using (var splash = new SplashWindow(_applicationInstance.InitialisationProgress))
            {
                splash.Show();

                var timer = System.Diagnostics.Stopwatch.StartNew();
                await _applicationInstance.InitialiseApplication();

                timer.Stop();

                var delayDelta = (int)(1000 - timer.ElapsedMilliseconds);

                if (delayDelta > 0)
                {
                    await Task.Delay(delayDelta);
                }


                Locator.CurrentMutable.Register(() => new CreateItemView(), typeof(IViewFor <CreateItemViewModel>));
                Locator.CurrentMutable.Register(() => new HistoryListItemView(), typeof(IViewFor <HistoryListItemViewModel>));
                Locator.CurrentMutable.Register(() => new HistoryListView(), typeof(IViewFor <HistoryListViewModel>));

                Locator.CurrentMutable.Register(() => new SettingsPageAboutView(), typeof(IViewFor <SettingsPageAboutViewModel>));
                Locator.CurrentMutable.Register(() => new SettingsPageApplicationView(), typeof(IViewFor <SettingsPageApplicationViewModel>));
                Locator.CurrentMutable.Register(() => new SettingsPageGeneralView(), typeof(IViewFor <SettingsPageGeneralViewModel>));
                Locator.CurrentMutable.Register(() => new SettingsPageGenerationView(), typeof(IViewFor <SettingsPageGenerationViewModel>));
                Locator.CurrentMutable.Register(() => new SettingsPageGenerationItemView(), typeof(IViewFor <SettingsPageGenerationItemViewModel>));

                Func <SettingsWindow> settingsWindowFactory = () =>
                {
                    var settingsWindow = new SettingsWindow();

                    var settingsVm = new SettingsWindowViewModel(new List <SettingsPageViewModelBase>
                    {
                        new SettingsPageAboutViewModel(_applicationInstance.AppInfoService),
                        new SettingsPageGeneralViewModel(_applicationInstance.ConfigService),
                        //new SettingsPageApplicationViewModel(),
                        new SettingsPageGenerationViewModel(_applicationInstance.ConfigService, _applicationInstance.GeneratorService)
                    });

                    settingsWindow.ViewModel = settingsVm;

                    return(settingsWindow);
                };

                var settingsManager = new SettingsWindowManager(settingsWindowFactory);

                var shellWindowViewModel = new ShellWindowViewModel(_applicationInstance.ConfigService, new CreateItemViewModel(_applicationInstance.ConfigService, _applicationInstance.GeneratorService, _applicationInstance.ClipboardService), new HistoryListViewModel(_applicationInstance.GeneratorService, _applicationInstance.ClipboardService), settingsManager);

                // Fix this bat-shit nonsense.
                Locator.CurrentMutable.UnregisterAll <IPropertyBindingHook>();
                Locator.CurrentMutable.Register <IPropertyBindingHook>(() => new BindingHookFixerer());

                var shell = new ShellWindow
                {
                    ViewModel = shellWindowViewModel
                };

                var trayIcon = new WhisperTrayAgent(shell, settingsManager);
                _applicationDisposables.Add(trayIcon);

                splash.Hide();
                splash.Close();

                shell.Show();
            }

            base.OnStartup(e);
        }