Exemplo n.º 1
0
 public Settings()
 {
     InitializeComponent();
     //Load the settings into the controls
     settingsSaver = new SettingsSaver();
     SetControls();
 }
Exemplo n.º 2
0
    private void InitUI()
    {
        // Load auto save settings
        if (Definitions.Settings.MakeAutoSave is null)
        {
            Definitions.Settings.MakeAutoSave = true;             // Set value
        }

        if (Definitions.Settings.AutoSaveDay is null)
        {
            Definitions.Settings.AutoSaveDay = 1;             // Set value
        }

        if (Definitions.Settings.SavePath is null)
        {
            Definitions.Settings.SavePath = $@"{Env.AppDataPath}\Gavilya\Backups";             // Set value
        }

        SettingsSaver.Save();         // Save changes

        // Combobox
        SaveTime.Items.Clear();         // Clear
        for (int i = 1; i <= 31; i++)
        {
            SaveTime.Items.Add(i);             // Add item
        }

        SaveTime.SelectedIndex = Definitions.Settings.AutoSaveDay.Value - 1;                                                          // Set

        MakeAutoSavesChk.IsChecked = Definitions.Settings.MakeAutoSave.Value;                                                         // Check/Uncheck

        PathTxt.Text = Definitions.Settings.SavePath is null ? Properties.Resources.SelectADirectory : Definitions.Settings.SavePath; // Set
        HandleCheckbox();
    }
Exemplo n.º 3
0
 private void NextPage()
 {
     new MainWindow().Show();                 // Show the main window
     FirstRun.Close();                        // Close the window
     Definitions.Settings.IsFirstRun = false; // Set the FirstRun Settings to false
     SettingsSaver.Save();
 }
Exemplo n.º 4
0
    private void ResetSettingsBtn_Click(object sender, RoutedEventArgs e)
    {
        if (MessageBox.Show(Properties.Resources.ResetSettingsMsg, Properties.Resources.MainWindowTitle, MessageBoxButton.YesNoCancel, MessageBoxImage.Question) == MessageBoxResult.Yes)
        {
            Definitions.Settings = new()
            {
                Language                         = "_default",
                IsFirstRun                       = false, // Default is true but there is no need to show the "Welcome" prompt to the user again.
                IsMaximized                      = false,
                PageId                           = 0,
                CurrentProfileIndex              = 0,
                MakeAutoSave                     = true,
                AutoSaveDay                      = 1,
                SavePath                         = $@"{Env.AppDataPath}\Gavilya\Backups",
                DefaultGavilyaHomePage           = GavilyaWindowPages.Home,
                MaxNumberRecentGamesShown        = 4,
                ShowMoreUnplayedGamesRecommanded = true,
                HideSearchBar                    = false
            };

            SettingsSaver.Save();             // Save changes

            MessageBox.Show(Properties.Resources.GavilyaNeedsRestartChanges, Properties.Resources.ResetSettings, MessageBoxButton.OK, MessageBoxImage.Information);
            Process.Start(Directory.GetCurrentDirectory() + @"\Gavilya.exe");
            Environment.Exit(0);             // Quit
        }
    }
}
Exemplo n.º 5
0
    private void ProfilePageBorder_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
    {
        ProfilePageRadioBtn.IsChecked = true;              // Check
        PageCheckedBorder             = ProfilePageBorder; // Set checked border
        RefreshPageBorders();                              // Refresh

        Definitions.Settings.DefaultGavilyaHomePage = GavilyaWindowPages.Profile;
        SettingsSaver.Save();         // Save changes
    }
Exemplo n.º 6
0
    private void RecentPageBorder_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
    {
        RecentPageRadioBtn.IsChecked = true; // Check
        CheckedBorder = RecentPageBorder;    // Set checked border
        RefreshBorders();                    // Refresh

        Definitions.Settings.PageId = 1;     // Set the startup page
        SettingsSaver.Save();                // Save changes
    }
Exemplo n.º 7
0
 private void SaveTime_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     try
     {
         Definitions.Settings.AutoSaveDay = (int)SaveTime.SelectedItem;             // Set
         SettingsSaver.Save();
     }
     catch { }
 }
    //    private static string NewString = "New..";

    public void OnEnable()
    {
        if (SettingsSaver.CurrentProgramSettings == null)
        {
            SettingsSaver.LoadProgramSettings();
        }
        ReloadOptions();
        if (SettingsSaver.CurrentProgramSettings != null && !string.IsNullOrEmpty(SettingsSaver.CurrentProgramSettings.LastProfile))
        {
            OnLoadPressed(true);
        }
    }
    public void OnLoadPressed(bool startup = false) // Loads an existing save
    {
        CancelConfirmingDelete();
        ProfileSettings settings;

        if (!SettingsSaver.SavedProfiles.TryGetValue(Dropdown.options[Dropdown.value].text, out settings))
        {
            return;
        }
        Logger4UIScripts.Log.Invoke(startup ? "加载了上次使用的配置: " + Dropdown.options[Dropdown.value].text : "加载保存的配置: " + Dropdown.options[Dropdown.value].text, Logger4UIScripts.LogColor.Blue);
        // Logger4UIScripts.Log.Invoke(startup ? "Loading last used settings " + Dropdown.options[Dropdown.value].text : "Loading saved settings " + Dropdown.options[Dropdown.value].text, Logger4UIScripts.LogColor.Blue);
        SettingsSaver.Current = Dropdown.options[Dropdown.value].text;
        if (!startup)
        {
            SettingsSaver.SaveProgramSettings();
        }
        // if (!DanmakuDisplayer.Instance.Connected) UsernameField.text = settings.Username;
        if (!DanmakuDisplayer.Instance.Connected)
        {
            ChannelField.text = settings.Channel;
        }

        XSlider.Slider.value = settings.X;
        YSlider.Slider.value = settings.Y;
        ZSlider.Slider.value = settings.Z;

        RXSlider.Slider.value = settings.RX;
        RYSlider.Slider.value = settings.RY;
        RZSlider.Slider.value = settings.RZ;

        DeviceDropdown.SetToOption(settings.Device.ToString());
        PointDropdown.SetToOption(settings.Point.ToString());
        AnimationDropdown.SetToOption(settings.Animation.ToString());

        RSlider.Slider.value = settings.BackgroundR;
        GSlider.Slider.value = settings.BackgroundG;
        BSlider.Slider.value = settings.BackgroundB;
        ASlider.Slider.value = (settings.SaveFileVersion >= 3 ? settings.BackgroundA : 1.0f); // Save File compatability

        AlphaStartField.text = settings.AlphaStart.ToString();
        AlphaEndField.text   = settings.AlphaEnd.ToString();
        AlphaSpeedField.text = settings.AlphaSpeed.ToString();
        ScaleStartField.text = settings.ScaleStart.ToString();
        ScaleEndField.text   = settings.ScaleEnd.ToString();
        ScaleSpeedField.text = settings.ScaleSpeed.ToString();

        AlphaStartField.onEndEdit.Invoke("");
        AlphaEndField.onEndEdit.Invoke("");
        AlphaSpeedField.onEndEdit.Invoke("");
        ScaleStartField.onEndEdit.Invoke("");
        ScaleEndField.onEndEdit.Invoke("");
        ScaleSpeedField.onEndEdit.Invoke("");
    }
Exemplo n.º 10
0
    private void HideSearchBarChk_Checked(object sender, RoutedEventArgs e)
    {
        Definitions.Settings.HideSearchBar = HideSearchBarChk.IsChecked; // Set settings value
        SettingsSaver.Save();                                            // Save changes

        // Hide search bar in MainWindow
        Definitions.MainWindow.SearchBox.Visibility = HideSearchBarChk.IsChecked.Value ? Visibility.Collapsed : Visibility.Visible;         // Hide
        Definitions.MainWindow.SearchBtn.Visibility = !HideSearchBarChk.IsChecked.Value ? Visibility.Collapsed : Visibility.Visible;        // Hide

        // Reset toggle search button state
        Definitions.MainWindow.SearchBtn.Background = new SolidColorBrush(Colors.Transparent); // Set default background color
        Definitions.MainWindow.IsSearchVisible      = false;                                   // Reset to default value
    }
 public void OnSaveNewPressed()
 {
     if (string.IsNullOrEmpty(SaveName.text) || SettingsSaver.SavedProfiles.ContainsKey(SaveName.text))
     {
         return;
     }
     _savingNew = false;
     Logger4UIScripts.Log.Invoke("新建了配置 " + SaveName.text, Logger4UIScripts.LogColor.Blue);
     // Logger4UIScripts.Log.Invoke("Adding saved settings " + SaveName.text, Logger4UIScripts.LogColor.Blue);
     SettingsSaver.SavedProfiles.Add(SaveName.text, ConvertToTwitchSettings(OverlayToSave));
     SettingsSaver.SaveProfiles();
     SaveName.text = "";
     ReloadOptions();
 }
 public void OnDeletePressed()
 {
     if (!_confirmingDelete)
     {
         _confirmingDelete      = true;
         DeleteButtonText.color = Color.red;
         OnDeleteButtonTooltip();
     }
     else
     {
         SettingsSaver.DeleteProfile(Dropdown.options[Dropdown.value].text);
         CancelConfirmingDelete();
         ReloadOptions();
     }
 }
Exemplo n.º 13
0
    protected override void OnStartup(StartupEventArgs e)
    {
        SettingsSaver.Load();                    // Load the settings
        Global.ChangeLanguage();                 // Change the language

        Definitions.GameInfoPage  = new();       // Create the page
        Definitions.GameInfoPage2 = new();       // Create the page

        ProfileManager.LoadProfiles();           // Load profiles
        GameSaver.Load();                        // Load the .gav file in the Definitions class

        Definitions.StatGameInfoControl = new(); // New control
        Definitions.Statistics          = new(); // New page

        Definitions.HomePage = new();

        RecentGamesPage recentGamesPage = new();       // RecentGamesPage

        Definitions.RecentGamesPage = recentGamesPage; // Define the RecentGamesPage
        Definitions.RecentGamesPage.LoadGames();       // Load the games

        GamesListPage gamesListPage = new();           // GamesListPage

        Definitions.GamesListPage = gamesListPage;     // Define the GamesListPage
        Definitions.GamesListPage.LoadGames();         // Load the games

        Definitions.LibraryPage = new();
        Definitions.ProfilePage = new();

        if (Definitions.Settings.DefaultGavilyaHomePage is null)
        {
            Definitions.Settings.DefaultGavilyaHomePage = Enums.GavilyaWindowPages.Home; // Set default value
            SettingsSaver.Save();                                                        // Save changes
        }

        if (Definitions.Settings.IsFirstRun)   // If it is the app first run
        {
            new FirstRun().Show();             // Show the first run experience
        }
        else
        {
            int?pageID = (e.Args.Length >= 2 && e.Args[0] == "/page") ? int.Parse(e.Args[1]) : null;

            new MainWindow(pageID == null ? null : (Enums.GavilyaWindowPages)pageID).Show();             // Show the regular main window
            Global.CreateJumpLists();
        }
    }
Exemplo n.º 14
0
    private void SaveButton_Click(object sender, RoutedEventArgs e)
    {
        if ((string)Languages.SelectedItem != Properties.Resources.Default)         // If the language is not default
        {
            Definitions.Settings.Language = Definitions.LanguagesCodes[Definitions.Languages.IndexOf((string)Languages.SelectedItem)];
        }
        else
        {
            Definitions.Settings.Language = "_default";             // Set the language to default
        }
        SettingsSaver.Save();

        if (MessageBox.Show(Properties.Resources.GavilyaNeedsRestartChanges, Properties.Resources.MainWindowTitle, MessageBoxButton.YesNoCancel, MessageBoxImage.Question) == MessageBoxResult.Yes)
        {
            Process.Start(Directory.GetCurrentDirectory() + @"\Gavilya.exe");
            Environment.Exit(0);
        }
    }
    /// <summary>
    /// Overwrite an existing save, or save a new one
    /// </summary>
    public void OnSavePressed()
    {
        CancelConfirmingDelete();
        if (Dropdown.options[Dropdown.value].text == NewString) // Start creating a new save
        {
            _savingNew = true;
            OnValueChanges();
        }
        else // Overwrite an existing save
        {
            ProfileSettings settings;
            if (!SettingsSaver.SavedProfiles.TryGetValue(Dropdown.options[Dropdown.value].text, out settings))
            {
                return;
            }
            Logger4UIScripts.Log.Invoke("覆盖了配置 " + Dropdown.options[Dropdown.value].text, Logger4UIScripts.LogColor.Blue);
            // Logger4UIScripts.Log.Invoke("Overwriting saved settings " + Dropdown.options[Dropdown.value].text, Logger4UIScripts.LogColor.Blue);
            settings.SaveFileVersion = ProfileSettings.CurrentSaveVersion;

            // settings.Username = UsernameField.text;
            settings.Channel = ChannelField.text;
            settings.X       = OverlayToSave.AnchorOffset.x; settings.Y = OverlayToSave.AnchorOffset.y; settings.Z = OverlayToSave.AnchorOffset.z;
            settings.RX      = OverlayToSave.transform.eulerAngles.x; settings.RY = OverlayToSave.transform.eulerAngles.y; settings.RZ = OverlayToSave.transform.eulerAngles.z;

            settings.Device    = OverlayToSave.AnchorDevice;
            settings.Point     = OverlayToSave.AnchorPoint;
            settings.Animation = OverlayToSave.AnimateOnGaze;

            var backgroundColor = GetMaterialTexture().GetPixel(0, 0);
            settings.BackgroundR = backgroundColor.r;
            settings.BackgroundG = backgroundColor.g;
            settings.BackgroundB = backgroundColor.b;
            settings.BackgroundA = backgroundColor.a;

            settings.AlphaStart = OverlayToSave.Alpha; settings.AlphaEnd = OverlayToSave.AnimationAlpha; settings.AlphaSpeed = OverlayToSave.AnimationAlphaSpeed;
            settings.ScaleStart = OverlayToSave.Scale; settings.ScaleEnd = OverlayToSave.AnimationScale; settings.ScaleSpeed = OverlayToSave.AnimationScaleSpeed;
            SettingsSaver.SaveProfiles();
        }
    }
Exemplo n.º 16
0
    private void Browse_Click(object sender, RoutedEventArgs e)
    {
        try
        {
            SaveFileDialog saveFileDialog = new();                                                                                                                                                   // Create a SaveFileDialog
            saveFileDialog.FileName = $@"{Definitions.Settings.SavePath}\GavilyaGames_{Definitions.Profiles[Definitions.Settings.CurrentProfileIndex].Name}_{DateTime.Now:yyyy_MM_dd_HH_mm_ss}.gav"; // File name
            saveFileDialog.Filter   = $"{Properties.Resources.GavFiles}|*.gav";                                                                                                                      // Extension
            saveFileDialog.Title    = Properties.Resources.SaveLocation;                                                                                                                             // Title

            if (saveFileDialog.ShowDialog() ?? true)
            {
                string fileLocation = System.IO.Path.GetDirectoryName(saveFileDialog.FileName); // Location of the file
                Definitions.Settings.SavePath = fileLocation;                                   // Set
                SettingsSaver.Save();
                InitUI();
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message, Properties.Resources.Error, MessageBoxButton.OK, MessageBoxImage.Error);
        }
    }
 public static SettingsUser Load(string username)
 {
     var saver = new SettingsSaver<SettingsUser>(username);
     var result = saver.Load();
     result._saver = saver;
     return result;
 }
Exemplo n.º 18
0
 private void DisplayedUnusedGamesChk_Checked(object sender, RoutedEventArgs e)
 {
     Definitions.Settings.ShowMoreUnplayedGamesRecommanded = DisplayedUnusedGamesChk.IsChecked; // Set value
     SettingsSaver.Save();                                                                      // Save the settings
 }
Exemplo n.º 19
0
 private void MakeAutoSavesChk_Unchecked(object sender, RoutedEventArgs e)
 {
     HandleCheckbox();                                                     // Handle
     Definitions.Settings.MakeAutoSave = MakeAutoSavesChk.IsChecked.Value; // Set
     SettingsSaver.Save();                                                 // Save changes
 }
 public static SettingsApplication Load()
 {
     var saver = new SettingsSaver<SettingsApplication>(null);
     var result = saver.Load();
     result._saver = saver;
     return result;
 }