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;
}
}