BetterExplorer.MainWindow.LoadRegistryRelatedSettings C# (CSharp) Метод

LoadRegistryRelatedSettings() приватный Метод

private LoadRegistryRelatedSettings ( ) : void
Результат void
    private void LoadRegistryRelatedSettings() {
      BESettings.LoadSettings();
      RegistryKey rk = Registry.CurrentUser;
      RegistryKey rks = rk.CreateSubKey(@"Software\BExplorer");

      switch (Convert.ToString(rks.GetValue("CurrentTheme", "Blue"))) {
        case "Blue":
          btnBlue.IsChecked = true;
          break;
        case "Silver":
          btnSilver.IsChecked = true;
          break;
        case "Black":
          btnBlack.IsChecked = true;
          break;
        case "Metro":
          btnMetro.IsChecked = true;
          break;
        default:
          btnBlue.IsChecked = true;
          break;
      }

      LastUpdateCheck = DateTime.FromBinary(Convert.ToInt64(rks.GetValue("LastUpdateCheck", 0)));
      UpdateCheckInterval = (int)rks.GetValue("CheckInterval", 7);

      switch (UpdateCheckInterval) {
        case 1:
          rbDaily.IsChecked = true;
          break;
        case 7:
          rbWeekly.IsChecked = true;
          break;
        case 30:
          rbMonthly.IsChecked = true;
          break;
      }

      UpdateCheckType = (int)rks.GetValue("UpdateCheckType", 1);

      switch (UpdateCheckType) {
        case 0:
          rbReleases.IsChecked = true;
          break;
        case 1:
          rbReleasTest.IsChecked = true;
          break;
      }

      IsUpdateCheck = (int)rks.GetValue("CheckForUpdates", 1) == 1;
      chkUpdateCheck.IsChecked = IsUpdateCheck;

      IsUpdateCheckStartup = (int)rks.GetValue("CheckForUpdatesStartup", 1) == 1;
      chkUpdateStartupCheck.IsChecked = IsUpdateCheckStartup;

      IsConsoleShown = (int)rks.GetValue("IsConsoleShown", 0) == 1;
      btnConsolePane.IsChecked = this.IsConsoleShown;
      chkIsFlyout.IsChecked = (int)rks.GetValue("HFlyoutEnabled", 0) == 1;

      IsInfoPaneEnabled = (int)rks.GetValue("InfoPaneEnabled", 0) == 1;
      IsInfoPaneEnabled = false; //Since the user cannot disable it right now, it should always be disabled
      btnInfoPane.IsChecked = IsInfoPaneEnabled;

      InfoPaneHeight = (int)rks.GetValue("InfoPaneHeight", 150);

      if (IsInfoPaneEnabled) {
        rPreviewPane.Height = new GridLength(InfoPaneHeight);
        rPreviewPaneSplitter.Height = new GridLength(1);
      } else {
        rPreviewPane.Height = new GridLength(0);
        rPreviewPaneSplitter.Height = new GridLength(0);
      }

      IsPreviewPaneEnabled = (int)rks.GetValue("PreviewPaneEnabled", 0) == 1;
      btnPreviewPane.IsChecked = IsPreviewPaneEnabled;

      PreviewPaneWidth = (int)rks.GetValue("PreviewPaneWidth", 120);

      if (IsPreviewPaneEnabled) {
        clPreview.Width = new GridLength((double)PreviewPaneWidth);
        clPreviewSplitter.Width = new GridLength(1);
      } else {
        clPreview.Width = new GridLength(0);
        clPreviewSplitter.Width = new GridLength(0);
      }

      btnNavigationPane.IsChecked = (int)rks.GetValue("NavigationPaneEnabled", 1) == 1;

      this._ShellListView.ShowCheckboxes = (int)rks.GetValue("ShowCheckboxes", 0) == 1;
      chkShowCheckBoxes.IsChecked = _ShellListView.ShowCheckboxes;

      chkIsTerraCopyEnabled.IsChecked = (int)rks.GetValue("FileOpExEnabled", 0) == 1;

      chkIsCFO.IsChecked = (int)rks.GetValue("IsCustomFO", 0) == 1;
      _IsrestoreTabs = (int)rks.GetValue("IsRestoreTabs", 1) == 1;

      chkIsRestoreTabs.IsChecked = _IsrestoreTabs;

      chkTraditionalNameGrouping.IsChecked = (int)rks.GetValue("IsTraditionalNameGrouping", 0) == 1;
      this._IsTraditionalNameGrouping = chkTraditionalNameGrouping.IsChecked.Value;
      _ShellListView.IsTraditionalNameGrouping = chkTraditionalNameGrouping.IsChecked.Value;

      //if this instance has the /norestore switch, do not load tabs from previous session, even if it is set in the Registry
      if (App.IsStartWithStartupTab) _IsrestoreTabs = false;

      //this.chkIsLastTabCloseApp.IsChecked = (int)rks.GetValue("IsLastTabCloseApp", 1) == 1;

      canlogactions = (int)rks.GetValue("EnableActionLog", 0) == 1;
      chkLogHistory.IsChecked = canlogactions;
      if (canlogactions) {
        chkLogHistory.Visibility = Visibility.Visible;
        ShowLogsBorder.Visibility = Visibility.Visible;
        paddinglbl8.Visibility = Visibility.Visible;
      }

      // load settings for auto-switch to contextual tab
      _AsFolder = (int)rks.GetValue("AutoSwitchFolderTools", 0) == 1;
      asArchive = (int)rks.GetValue("AutoSwitchArchiveTools", 1) == 1;
      asImage = (int)rks.GetValue("AutoSwitchImageTools", 1) == 1;
      asApplication = (int)rks.GetValue("AutoSwitchApplicationTools", 0) == 1;
      asLibrary = (int)rks.GetValue("AutoSwitchLibraryTools", 1) == 1;
      asDrive = (int)rks.GetValue("AutoSwitchDriveTools", 1) == 1;
      asVirtualDrive = (int)rks.GetValue("AutoSwitchVirtualDriveTools", 0) == 1;

      chkFolder.IsChecked = _AsFolder;
      chkArchive.IsChecked = asArchive;
      chkImage.IsChecked = asImage;
      chkApp.IsChecked = asApplication;
      chkLibrary.IsChecked = asLibrary;
      chkDrive.IsChecked = asDrive;
      chkVirtualTools.IsChecked = asVirtualDrive;

      // load OverwriteOnImages setting (default is false)
      bool oor = (int)rks.GetValue("OverwriteImageWhileEditing", 0) == 1;
      OverwriteOnRotate = oor;
      chkOverwriteImages.IsChecked = oor;

      // load Saved Tabs Directory location (if different from default)
      string tdir = Convert.ToString(rks.GetValue("SavedTabsDirectory", satdir));
      txtDefSaveTabs.Text = tdir;
      sstdir = tdir;

      var StartUpLocation = rks.GetValue("StartUpLoc", KnownFolders.Libraries.ParsingName).ToString();
      if (tcMain.StartUpLocation == "") {
        rks.SetValue("StartUpLoc", KnownFolders.Libraries.ParsingName);
        tcMain.StartUpLocation = KnownFolders.Libraries.ParsingName;
      }

      try {
        var rkbe = Registry.ClassesRoot;
        var rksbe = rkbe.OpenSubKey(@"Folder\shell\open\command", RegistryKeyPermissionCheck.ReadSubTree);
        var isThereDefault = rksbe.GetValue("DelegateExecute", "-1").ToString() == "-1";
        chkIsDefault.IsChecked = isThereDefault;
        chkIsDefault.IsEnabled = true;
        rksbe.Close();
        rkbe.Close();
      } catch (Exception) {
        chkIsDefault.IsChecked = false;
        chkIsDefault.IsEnabled = false;
      }

      var rkfe = Registry.CurrentUser;
      var rksfe = rk.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced", RegistryKeyPermissionCheck.ReadSubTree);
      chkTreeExpand.IsChecked = (int)rksfe.GetValue("NavPaneExpandToCurrentFolder", 0) == 1;
      rksfe.Close();
      rkfe.Close();

      rks.Close();
      rk.Close();


      var sho = new ShellItem(StartUpLocation.ToShellParsingName());
      btnSetCurrentasStartup.Header = sho.DisplayName;
      sho.Thumbnail.FormatOption = ShellThumbnailFormatOption.IconOnly;
      btnSetCurrentasStartup.Icon = sho.Thumbnail.SmallBitmapSource;


      miTabManager.IsEnabled = Directory.Exists(sstdir);
      autoUpdater.DaysBetweenChecks = this.UpdateCheckInterval;

      try {
        autoUpdater.UpdateType = IsUpdateCheck ? UpdateType.OnlyCheck : UpdateType.DoNothing;
        if (IsUpdateCheckStartup) this.CheckForUpdate();
      } catch (IOException) {
        this.stiUpdate.Content = "Switch to another BetterExplorer window or restart to check for updates.";
        this.btnUpdateCheck.IsEnabled = false;
      }

      if (App.IsStartMinimized) {
        this.Visibility = Visibility.Hidden;
        this.WindowState = WindowState.Minimized;
      }

      if (!TheRibbon.IsMinimized) {
        TheRibbon.SelectedTabItem = HomeTab;
        this.TheRibbon.SelectedTabIndex = 0;
      }
    }
MainWindow