private void LoadSecurityOptions() { AceWorkspaceLocking aceWL = Program.Config.Security.WorkspaceLocking; uint uLockTime = aceWL.LockAfterTime; bool bLockTime = (uLockTime > 0); m_numLockAfterTime.Value = (bLockTime ? uLockTime : 300); m_cbLockAfterTime.Checked = bLockTime; if (AppConfigEx.IsOptionEnforced(aceWL, "LockAfterTime")) { m_cbLockAfterTime.Enabled = false; } uLockTime = aceWL.LockAfterGlobalTime; bLockTime = (uLockTime > 0); m_numLockAfterGlobalTime.Value = (bLockTime ? uLockTime : 240); m_cbLockAfterGlobalTime.Checked = bLockTime; if (AppConfigEx.IsOptionEnforced(aceWL, "LockAfterGlobalTime")) { m_cbLockAfterGlobalTime.Enabled = false; } int nDefaultExpireDays = Program.Config.Defaults.NewEntryExpiresInDays; if (nDefaultExpireDays < 0) { m_cbDefaultExpireDays.Checked = false; } else { m_cbDefaultExpireDays.Checked = true; try { m_numDefaultExpireDays.Value = nDefaultExpireDays; } catch (Exception) { Debug.Assert(false); } } if (AppConfigEx.IsOptionEnforced(Program.Config.Defaults, "NewEntryExpiresInDays")) { m_cbDefaultExpireDays.Enabled = false; } int nClipClear = Program.Config.Security.ClipboardClearAfterSeconds; if (nClipClear >= 0) { m_cbClipClearTime.Checked = true; m_numClipClearTime.Value = nClipClear; } else { m_cbClipClearTime.Checked = false; } if (AppConfigEx.IsOptionEnforced(Program.Config.Security, "ClipboardClearAfterSeconds")) { m_cbClipClearTime.Enabled = false; } m_lvSecurityOptions.Columns.Add(string.Empty, 200); // Resize below ListViewGroup lvg = new ListViewGroup(KPRes.Options); m_lvSecurityOptions.Groups.Add(lvg); Debug.Assert(lvg.ListView == m_lvSecurityOptions); m_cdxSecurityOptions = new CheckedLVItemDXList(m_lvSecurityOptions, true); m_cdxSecurityOptions.CreateItem(aceWL, "LockOnWindowMinimize", lvg, KPRes.LockOnMinimize); m_cdxSecurityOptions.CreateItem(aceWL, "LockOnSessionSwitch", lvg, KPRes.LockOnSessionSwitch); m_cdxSecurityOptions.CreateItem(aceWL, "LockOnSuspend", lvg, KPRes.LockOnSuspend); m_cdxSecurityOptions.CreateItem(aceWL, "LockOnRemoteControlChange", lvg, KPRes.LockOnRemoteControlChange); m_cdxSecurityOptions.CreateItem(aceWL, "ExitInsteadOfLockingAfterTime", lvg, KPRes.ExitInsteadOfLockingAfterTime); m_cdxSecurityOptions.CreateItem(aceWL, "AlwaysExitInsteadOfLocking", lvg, KPRes.ExitInsteadOfLockingAlways); m_cdxSecurityOptions.CreateItem(Program.Config.Security, "ClipboardClearOnExit", lvg, KPRes.ClipboardClearOnExit); m_cdxSecurityOptions.CreateItem(Program.Config.Security, "UseClipboardViewerIgnoreFormat", lvg, KPRes.ClipboardViewerIgnoreFormat + " " + KPRes.NotRecommended); if (NativeLib.IsLibraryInstalled()) { m_cdxSecurityOptions.CreateItem(Program.Config.Native, "NativeKeyTransformations", lvg, KPRes.NativeLibUse); } m_cdxSecurityOptions.CreateItem(Program.Config.Security, "MasterKeyOnSecureDesktop", lvg, KPRes.MasterKeyOnSecureDesktop); m_cdxSecurityOptions.CreateItem(Program.Config.Security, "ClearKeyCommandLineParams", lvg, KPRes.ClearKeyCmdLineParams); m_cdxSecurityOptions.UpdateData(false); m_lvSecurityOptions.Columns[0].Width = m_lvSecurityOptions.ClientRectangle.Width - UIUtil.GetVScrollBarWidth() - 1; }
public OptionsPanel(KeeAgentExt ext) { InitializeComponent(); if (Type.GetType("Mono.Runtime") != null) { const int xOffset = -30; const int yOffset = -30; helpButton.Left += xOffset; customListViewEx.Width += xOffset; groupBox1.Width += xOffset; groupBox1.Height += yOffset; } this.ext = ext; isUnix = Environment.OSVersion.Platform == PlatformID.Unix || Environment.OSVersion.Platform == PlatformID.MacOSX; // make transparent so tab styling shows SetStyle(ControlStyles.SupportsTransparentBackColor, true); BackColor = Color.Transparent; modeComboBox.Items.Add(Translatable.OptionAgentModeAuto); modeComboBox.Items.Add(Translatable.OptionAgentModeAgent); modeComboBox.Items.Add(Translatable.OptionAgentModeClient); switch (ext.Options.AgentMode) { case AgentMode.Client: modeComboBox.SelectedItem = Translatable.OptionAgentModeClient; break; case AgentMode.Server: modeComboBox.SelectedItem = Translatable.OptionAgentModeAgent; break; default: modeComboBox.SelectedItem = Translatable.OptionAgentModeAuto; break; } // additional configuration of list view customListViewEx.UseCompatibleStateImageBehavior = false; UIUtil.SetExplorerTheme(customListViewEx, false); optionsList = new CheckedLVItemDXList(customListViewEx, true); var optionsGroup = new ListViewGroup("common", "Options"); customListViewEx.Groups.Add(optionsGroup); optionsList.CreateItem(ext.Options, "IgnoreMissingExternalKeyFiles", optionsGroup, Translatable.OptionIgnoreMissingExternalKeyFiles); optionsList.CreateItem(ext.Options, "AllowAccessFromNonElevatedProcess", optionsGroup, Translatable.OptionAllowAccessFromNonElevatedProcess); var agentModeOptionsGroup = new ListViewGroup("agentMode", "Agent Mode Options (no effect in Client Mode)"); customListViewEx.Groups.Add(agentModeOptionsGroup); optionsList.CreateItem(ext.Options, "AlwaysConfirm", agentModeOptionsGroup, Translatable.OptionAlwaysConfirm); optionsList.CreateItem(ext.Options, "ShowBalloon", agentModeOptionsGroup, Translatable.OptionShowBalloon); //mOptionsList.CreateItem(aExt.Options, "LoggingEnabled", optionsGroup, // Translatable.optionLoggingEnabled); optionsList.CreateItem(ext.Options, "UnlockOnActivity", agentModeOptionsGroup, Translatable.OptionUnlockOnActivity); optionsList.CreateItem(ext.Options, "UserPicksKeyOnRequestIdentities", agentModeOptionsGroup, Translatable.OptionUserPicksKeyOnRequestIdentities); if (!isUnix) { optionsList.CreateItem(ext.Options, "UseWindowsOpenSshPipe", agentModeOptionsGroup, Translatable.OptionUseWindowsOpenSshPipe); } columnHeader.Width = customListViewEx.ClientRectangle.Width - UIUtil.GetVScrollBarWidth() - 1; if (isUnix) { groupBox1.Text = "Agent mode socket file"; useCygwinSocketCheckBox.Visible = false; cygwinSocketPathTextBox.Text = ext.Options.UnixSocketPath; cygwinSocketPathTextBox.Enabled = true; cygwinPathBrowseButton.Enabled = true; useMsysSocketCheckBox.Visible = false; label4.Visible = false; msysSocketPathTextBox.Visible = false; msysPathBrowseButton.Visible = false; } else { useCygwinSocketCheckBox.Checked = ext.Options.UseCygwinSocket; cygwinSocketPathTextBox.Text = ext.Options.CygwinSocketPath; useMsysSocketCheckBox.Checked = ext.Options.UseMsysSocket; msysSocketPathTextBox.Text = ext.Options.MsysSocketPath; } optionsList.UpdateData(false); }