示例#1
0
        public WireguardSettingsWindow(ViewModelWireguardSettings viewModel)
        {
            ViewModel = viewModel;

            InitializeComponent();

            DataContext = this;
        }
        private SettingsWindow(AppSettings settings, ViewModelWireguardSettings wgSettingsModel)
        {
            InitializeComponent();
            Settings = settings;
            AppState = AppState.Instance();

            Settings.FreezeSettings(); // save corrent settings state (in order to have possibility to restore)

            // if WiFi functionality is disable - hide trusted\untrusted wifi configuration
            NetworksSettings = new ViewModelNetworksSettings(Settings.NetworkActions, this);
            if (NetworksSettings.IsWiFiFunctionalityOn == false)
            {
                GuiTabItemNetworks.Visibility = Visibility.Collapsed;
            }

            DataContext = this;

            switch (Settings.ProxyType)
            {
            case ProxyType.None:
                rbProxyNone.IsChecked = true;
                break;

            case ProxyType.Auto:
                rbProxyAuto.IsChecked = true;
                break;

            case ProxyType.Http:
                rbProxyHTTP.IsChecked = true;
                break;

            case ProxyType.Socks:
                rbProxySOCKS.IsChecked = true;
                break;
            }

            txtProxyPassword.Password = Settings.ProxyUnsafePassword;

            WireGuardSettings          = wgSettingsModel;
            WireGuardSettings.OnError += WireGuardSettings_OnError;
            Closing += (sender, args) => { WireGuardSettings.OnError -= WireGuardSettings_OnError; };

            // WireGuard key regeneration interval
            for (int i = 1; i <= 30; i++)
            {
                GuiComboBoxWgKeyRegenerateDays.Items.Add(i);
            }
            GuiComboBoxWgKeyRegenerateDays.SelectedIndex = WireGuardSettings.RegenerationIntervalDays - 1;

            if (GuiComboBoxWgKeyRegenerateDays.SelectedIndex < 0)
            {
                GuiComboBoxWgKeyRegenerateDays.SelectedIndex = 0;
            }
            GuiComboBoxWgKeyRegenerateDays.SelectionChanged += (sender, args) => { WireGuardSettings.RegenerationIntervalDays = GuiComboBoxWgKeyRegenerateDays.SelectedIndex + 1; };

            Settings.PropertyChanged += Settings_OnPropertyChanged;
            Closing += (sender, args) => { Settings.PropertyChanged -= Settings_OnPropertyChanged; };
        }
示例#3
0
        public static void ShowSettingsWindow(Service service, ViewModelWireguardSettings wgSettingsModel)
        {
            CloseSettingsWindow();

            __Instance = new SettingsWindow(App.Settings, wgSettingsModel)
            {
                Service = service,
                Owner   = Application.Current.MainWindow
            };
            __Instance.ShowDialog();
        }
示例#4
0
        private void SetMainViewModel(MainViewModel mainViewModel)
        {
            __MainViewModel = mainViewModel;

            __WireguardSetingsViewModel          = new ViewModelWireguardSettings(__MainViewModel, LocalizedStrings.Instance);
            __WireguardSetingsViewModel.OnError += __WireguardSetingsViewModel_OnError;
            WireguardSettingsViewModelObservable = new ObservableObject(__WireguardSetingsViewModel);

            __MainViewModel.WireguardKeysManager.OnStarted += WireguardKeysManager_OnStarted;
            __MainViewModel.WireguardKeysManager.OnStopped += WireguardKeysManager_OnStopped;
        }