void EditorSettingsDockingWindows::Save(OptionsConfigPtr options) { options->SetHideOutpuPaneOnUserClick(m_checkBoxHideOutputPaneOnClick->IsChecked()); options->SetHideOutputPaneNotIfBuild(m_checkBoxHideOutputPaneNotIfBuild->IsChecked()); options->SetHideOutputPaneNotIfSearch(m_checkBoxHideOutputPaneNotIfSearch->IsChecked()); options->SetHideOutputPaneNotIfReplace(m_checkBoxHideOutputPaneNotIfReplace->IsChecked()); options->SetHideOutputPaneNotIfReferences(m_checkBoxHideOutputPaneNotIfReferences->IsChecked()); options->SetHideOutputPaneNotIfOutput(m_checkBoxHideOutputPaneNotIfOutput->IsChecked()); options->SetHideOutputPaneNotIfTrace(m_checkBoxHideOutputPaneNotIfTrace->IsChecked()); options->SetHideOutputPaneNotIfTasks(m_checkBoxHideOutputPaneNotIfTasks->IsChecked()); options->SetHideOutputPaneNotIfBuildQ(m_checkBoxHideOutputPaneNotIfBuildQ->IsChecked()); options->SetHideOutputPaneNotIfCppCheck(m_checkBoxHideOutputPaneNotIfCppCheck->IsChecked()); options->SetHideOutputPaneNotIfSvn(m_checkBoxHideOutputPaneNotIfSvn->IsChecked()); options->SetHideOutputPaneNotIfCscope(m_checkBoxHideOutputPaneNotIfCscope->IsChecked()); options->SetHideOutputPaneNotIfGit(m_checkBoxHideOutputPaneNotIfGit->IsChecked()); options->SetHideOutputPaneNotIfDebug(m_checkBoxHideOutputPaneNotIfDebug->IsChecked()); options->SetHideOutputPaneNotIfMemCheck(m_checkBoxHideOutputPaneNotIfMemCheck->IsChecked()); options->SetFindBarAtBottom(m_checkBoxFindBarAtBottom->IsChecked()); options->SetShowReplaceBar(m_checkBoxShowReplaceBar->IsChecked()); options->SetDontAutoFoldResults(m_checkBoxDontFoldSearchResults->IsChecked()); options->SetShowDebugOnRun(m_checkBoxShowDebugOnRun->IsChecked()); options->SetDockingStyle(m_radioBoxHint->GetSelection()); options->SetShowDockingWindowCaption(!m_checkBoxHideCaptions->IsChecked()); options->SetEnsureCaptionsVisible(m_checkBoxEnsureCaptionsVisible->IsChecked()); // Keep the quickreplacebar in sync clMainFrame::Get()->GetMainBook()->ShowQuickReplaceBar(m_checkBoxShowReplaceBar->IsChecked()); size_t flags(options->GetOptions()); // set the tab control options: //////////////////////////////////// // Clear the current tab control style flags &= ~OptionsConfig::TabAll; switch(m_radioBoxTabControlStyle->GetSelection()) { case 0: // glossy flags |= OptionsConfig::TabGlossy; m_endFlags |= OptionsConfig::TabGlossy; break; case 1: // curved default: flags |= OptionsConfig::TabCurved; m_endFlags |= OptionsConfig::TabCurved; break; } options->SetOptions(flags); }
EditorSettingsDockingWindows::EditorSettingsDockingWindows(wxWindow* parent) : EditorSettingsDockingWindowsBase(parent) { OptionsConfigPtr options = EditorConfigST::Get()->GetOptions(); m_checkBoxHideOutputPaneOnClick->SetValue(options->GetHideOutpuPaneOnUserClick()); m_checkBoxHideOutputPaneNotIfBuild->SetValue(options->GetHideOutputPaneNotIfBuild()); m_checkBoxHideOutputPaneNotIfSearch->SetValue(options->GetHideOutputPaneNotIfSearch()); m_checkBoxHideOutputPaneNotIfReplace->SetValue(options->GetHideOutputPaneNotIfReplace()); m_checkBoxHideOutputPaneNotIfReferences->SetValue(options->GetHideOutputPaneNotIfReferences()); m_checkBoxHideOutputPaneNotIfOutput->SetValue(options->GetHideOutputPaneNotIfOutput()); m_checkBoxHideOutputPaneNotIfTrace->SetValue(options->GetHideOutputPaneNotIfTrace()); m_checkBoxHideOutputPaneNotIfTasks->SetValue(options->GetHideOutputPaneNotIfTasks()); m_checkBoxHideOutputPaneNotIfBuildQ->SetValue(options->GetHideOutputPaneNotIfBuildQ()); m_checkBoxHideOutputPaneNotIfCppCheck->SetValue(options->GetHideOutputPaneNotIfCppCheck()); m_checkBoxHideOutputPaneNotIfSvn->SetValue(options->GetHideOutputPaneNotIfSvn()); m_checkBoxHideOutputPaneNotIfCscope->SetValue(options->GetHideOutputPaneNotIfCscope()); m_checkBoxHideOutputPaneNotIfGit->SetValue(options->GetHideOutputPaneNotIfGit()); m_checkBoxHideOutputPaneNotIfDebug->SetValue(options->GetHideOutputPaneNotIfDebug()); m_checkBoxHideOutputPaneNotIfMemCheck->SetValue(options->GetHideOutputPaneNotIfMemCheck()); m_checkBoxFindBarAtBottom->SetValue(options->GetFindBarAtBottom()); m_checkBoxShowReplaceBar->SetValue(options->GetShowReplaceBar()); m_checkBoxDontFoldSearchResults->SetValue(options->GetDontAutoFoldResults()); m_checkBoxShowDebugOnRun->SetValue(options->GetShowDebugOnRun()); m_radioBoxHint->SetSelection(options->GetDockingStyle()); m_checkBoxHideCaptions->SetValue(!options->IsShowDockingWindowCaption()); m_checkBoxEnsureCaptionsVisible->SetValue(options->IsEnsureCaptionsVisible()); int tabStyle(0); // Glossy m_startingFlags = OptionsConfig::TabGlossy; if(options->GetOptions() & OptionsConfig::TabCurved) { tabStyle = 1; m_startingFlags = OptionsConfig::TabCurved; } m_endFlags = m_startingFlags; m_radioBoxTabControlStyle->SetSelection(tabStyle); #if CL_USE_NATIVEBOOK m_radioBoxTabControlStyle->Enable(false); #endif m_checkBoxHideOutputPaneNotIfDebug->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler(EditorSettingsDockingWindows::OnHideOutputPaneNotIfDebugUI), NULL, this); }
EditorSettingsMiscPanel::EditorSettingsMiscPanel(wxWindow* parent) : EditorSettingsMiscBasePanel(parent) , TreeBookNode<EditorSettingsMiscPanel>() , m_restartRequired(false) { GeneralInfo info = clMainFrame::Get()->GetFrameGeneralInfo(); OptionsConfigPtr options = EditorConfigST::Get()->GetOptions(); if(options->GetIconsSize() == 16) { m_toolbarIconSize->SetSelection(0); } else { m_toolbarIconSize->SetSelection(1); } if(options->GetOptions() & OptionsConfig::Opt_IconSet_FreshFarm) m_choiceIconSet->SetSelection(1); else if(options->GetOptions() & OptionsConfig::Opt_IconSet_Classic_Dark) m_choiceIconSet->SetSelection(2); else m_choiceIconSet->SetSelection(0); // Default m_checkBoxEnableMSWTheme->SetValue(options->GetMswTheme()); m_useSingleToolbar->SetValue(!PluginManager::Get()->AllowToolbar()); m_oldSetLocale = options->GetUseLocale(); m_SetLocale->SetValue(m_oldSetLocale); m_oldpreferredLocale = options->GetPreferredLocale(); // Load the available locales and feed them to the wxchoice int select = FindAvailableLocales(); if(select != wxNOT_FOUND) { m_AvailableLocales->SetSelection(select); } wxArrayString astrEncodings; wxFontEncoding fontEnc; int iCurrSelId = 0; size_t iEncCnt = wxFontMapper::GetSupportedEncodingsCount(); for(size_t i = 0; i < iEncCnt; i++) { fontEnc = wxFontMapper::GetEncoding(i); if(wxFONTENCODING_SYSTEM == fontEnc) { // skip system, it is changed to UTF-8 in optionsconfig continue; } astrEncodings.Add(wxFontMapper::GetEncodingName(fontEnc)); if(fontEnc == options->GetFileFontEncoding()) { iCurrSelId = i; } } m_fileEncoding->Append(astrEncodings); m_fileEncoding->SetSelection(iCurrSelId); m_singleAppInstance->SetValue(clConfig::Get().Read(kConfigSingleInstance, false)); m_versionCheckOnStartup->SetValue(clConfig::Get().Read(kConfigCheckForNewVersion, true)); m_maxItemsFindReplace->ChangeValue(::wxIntToString(clConfig::Get().Read(kConfigMaxItemsInFindReplaceDialog, 15))); m_spinCtrlMaxOpenTabs->ChangeValue(::wxIntToString(clConfig::Get().Read(kConfigMaxOpenedTabs, 15))); m_choice4->SetStringSelection( FileLogger::GetVerbosityAsString(clConfig::Get().Read(kConfigLogVerbosity, FileLogger::Error))); m_checkBoxRestoreSession->SetValue(clConfig::Get().Read(kConfigRestoreLastSession, true)); m_textCtrlPattern->ChangeValue(clConfig::Get().Read(kConfigFrameTitlePattern, wxString("$workspace $fullpath"))); bool showSplash = info.GetFlags() & CL_SHOW_SPLASH ? true : false; m_showSplashScreen->SetValue(showSplash); m_oldMswUseTheme = m_checkBoxEnableMSWTheme->IsChecked(); m_redirectLogOutput->SetValue(clConfig::Get().Read(kConfigRedirectLogOutput, true)); m_checkBoxPromptReleaseOnly->SetValue(clConfig::Get().Read("PromptForNewReleaseOnly", false)); }
void EditorSettingsMiscPanel::Save(OptionsConfigPtr options) { if(m_showSplashScreen->IsChecked()) { clMainFrame::Get()->SetFrameFlag(true, CL_SHOW_SPLASH); } else { clMainFrame::Get()->SetFrameFlag(false, CL_SHOW_SPLASH); } // Set the theme support. // This option requires a restart of codelite options->SetMswTheme(m_checkBoxEnableMSWTheme->IsChecked()); if(m_oldMswUseTheme != m_checkBoxEnableMSWTheme->IsChecked()) { m_restartRequired = true; } clConfig::Get().Write(kConfigSingleInstance, m_singleAppInstance->IsChecked()); clConfig::Get().Write(kConfigCheckForNewVersion, m_versionCheckOnStartup->IsChecked()); clConfig::Get().Write(kConfigMaxItemsInFindReplaceDialog, ::wxStringToInt(m_maxItemsFindReplace->GetValue(), 15)); clConfig::Get().Write(kConfigMaxOpenedTabs, ::wxStringToInt(m_spinCtrlMaxOpenTabs->GetValue(), 15)); clConfig::Get().Write(kConfigRestoreLastSession, m_checkBoxRestoreSession->IsChecked()); clConfig::Get().Write(kConfigFrameTitlePattern, m_textCtrlPattern->GetValue()); bool oldUseSingleToolbar = !PluginManager::Get()->AllowToolbar(); EditorConfigST::Get()->SetInteger(wxT("UseSingleToolbar"), m_useSingleToolbar->IsChecked() ? 1 : 0); // check to see of the icon size was modified int oldIconSize(24); OptionsConfigPtr oldOptions = EditorConfigST::Get()->GetOptions(); if(oldOptions) { oldIconSize = oldOptions->GetIconsSize(); } int iconSize(24); if(m_toolbarIconSize->GetSelection() == 0) { iconSize = 16; } options->SetIconsSize(iconSize); bool setlocale = m_SetLocale->IsChecked(); options->SetUseLocale(setlocale); wxString newLocaleString = m_AvailableLocales->GetStringSelection(); // I don't think we should check if newLocaleString is empty; that's still useful information newLocaleString = newLocaleString.BeforeFirst(wxT(':')); // Store it as "fr_FR", not "fr_FR: French" options->SetPreferredLocale(newLocaleString); if((setlocale != m_oldSetLocale) || (newLocaleString != m_oldpreferredLocale)) { m_restartRequired = true; } // save file font encoding options->SetFileFontEncoding(m_fileEncoding->GetStringSelection()); TagsManagerST::Get()->SetEncoding(options->GetFileFontEncoding()); if(oldIconSize != iconSize || oldUseSingleToolbar != m_useSingleToolbar->IsChecked()) { EditorConfigST::Get()->SetInteger(wxT("LoadSavedPrespective"), 0); // notify the user m_restartRequired = true; } else { EditorConfigST::Get()->SetInteger(wxT("LoadSavedPrespective"), 1); } size_t flags = options->GetOptions(); size_t oldFlags = oldOptions->GetOptions(); // Keep the old icon-set flags, this is done for deciding whether we should // prompt the user for possible restart size_t oldIconFlags(0); size_t newIconFlags(0); if(oldFlags & OptionsConfig::Opt_IconSet_Classic) oldIconFlags |= OptionsConfig::Opt_IconSet_Classic; if(oldFlags & OptionsConfig::Opt_IconSet_FreshFarm) oldIconFlags |= OptionsConfig::Opt_IconSet_FreshFarm; if(oldFlags & OptionsConfig::Opt_IconSet_Classic_Dark) oldIconFlags |= OptionsConfig::Opt_IconSet_Classic_Dark; if(oldIconFlags == 0) oldIconFlags = OptionsConfig::Opt_IconSet_Classic; // Clear old settings flags &= ~(OptionsConfig::Opt_IconSet_Classic); flags &= ~(OptionsConfig::Opt_IconSet_FreshFarm); flags &= ~(OptionsConfig::Opt_IconSet_Classic_Dark); if(m_choiceIconSet->GetSelection() == 0) { newIconFlags |= OptionsConfig::Opt_IconSet_Classic; flags |= OptionsConfig::Opt_IconSet_Classic; } else if(m_choiceIconSet->GetSelection() == 2) { newIconFlags |= OptionsConfig::Opt_IconSet_Classic_Dark; flags |= OptionsConfig::Opt_IconSet_Classic_Dark; } else { // 1 newIconFlags |= OptionsConfig::Opt_IconSet_FreshFarm; flags |= OptionsConfig::Opt_IconSet_FreshFarm; } clConfig::Get().Write("RedirectLogOutput", m_redirectLogOutput->IsChecked()); clConfig::Get().Write("PromptForNewReleaseOnly", m_checkBoxPromptReleaseOnly->IsChecked()); options->SetOptions(flags); m_restartRequired = ((oldIconFlags != newIconFlags) || m_restartRequired); }
EditorSettingsDockingWindows::EditorSettingsDockingWindows(wxWindow* parent) : EditorSettingsDockingWindowsBase(parent) { OptionsConfigPtr options = EditorConfigST::Get()->GetOptions(); m_checkBoxHideOutputPaneOnClick->SetValue(options->GetHideOutpuPaneOnUserClick()); m_checkBoxHideOutputPaneNotIfBuild->SetValue(options->GetHideOutputPaneNotIfBuild()); m_checkBoxHideOutputPaneNotIfSearch->SetValue(options->GetHideOutputPaneNotIfSearch()); m_checkBoxHideOutputPaneNotIfReplace->SetValue(options->GetHideOutputPaneNotIfReplace()); m_checkBoxHideOutputPaneNotIfReferences->SetValue(options->GetHideOutputPaneNotIfReferences()); m_checkBoxHideOutputPaneNotIfOutput->SetValue(options->GetHideOutputPaneNotIfOutput()); m_checkBoxHideOutputPaneNotIfTrace->SetValue(options->GetHideOutputPaneNotIfTrace()); m_checkBoxHideOutputPaneNotIfTasks->SetValue(options->GetHideOutputPaneNotIfTasks()); m_checkBoxHideOutputPaneNotIfBuildQ->SetValue(options->GetHideOutputPaneNotIfBuildQ()); m_checkBoxHideOutputPaneNotIfCppCheck->SetValue(options->GetHideOutputPaneNotIfCppCheck()); m_checkBoxHideOutputPaneNotIfSvn->SetValue(options->GetHideOutputPaneNotIfSvn()); m_checkBoxHideOutputPaneNotIfCscope->SetValue(options->GetHideOutputPaneNotIfCscope()); m_checkBoxHideOutputPaneNotIfGit->SetValue(options->GetHideOutputPaneNotIfGit()); m_checkBoxHideOutputPaneNotIfDebug->SetValue(options->GetHideOutputPaneNotIfDebug()); m_checkBoxHideOutputPaneNotIfMemCheck->SetValue(options->GetHideOutputPaneNotIfMemCheck()); m_checkBoxFindBarAtBottom->SetValue(options->GetFindBarAtBottom()); m_checkBoxDontFoldSearchResults->SetValue(options->GetDontAutoFoldResults()); m_checkBoxShowDebugOnRun->SetValue(options->GetShowDebugOnRun()); m_radioBoxHint->SetSelection(options->GetDockingStyle()); m_checkBoxHideCaptions->SetValue(!options->IsShowDockingWindowCaption()); m_checkBoxEnsureCaptionsVisible->SetValue(options->IsEnsureCaptionsVisible()); m_checkBoxEditorTabsFollowsTheme->SetValue(options->IsTabColourMatchesTheme()); m_checkBoxUseDarkTabTheme->SetValue(options->IsTabColourDark()); m_checkBoxShowXButton->SetValue(options->IsTabHasXButton()); m_checkBoxMouseScrollSwitchTabs->SetValue(options->IsMouseScrollSwitchTabs()); // DEFAULT 0 // MINIMAL 1 // TRAPEZOID 2 if(options->GetOptions() & OptionsConfig::Opt_TabStyleTRAPEZOID) { m_choiceTabStyle->SetSelection(2); } else if(options->GetOptions() & OptionsConfig::Opt_TabStyleMinimal) { m_choiceTabStyle->SetSelection(1); } else { // default m_choiceTabStyle->SetSelection(0); } int sel(0); switch(options->GetNotebookTabHeight()) { case OptionsConfig::nbTabHt_Tiny: sel = 3; break; case OptionsConfig::nbTabHt_Short: sel = 2; break; case OptionsConfig::nbTabHt_Medium: sel = 1; break; default: sel = 0; } m_choiceTabHeight->SetSelection(sel); #if 0 { wxArrayString tabOptionsArr; tabOptionsArr.Add(wxT("TOP")); tabOptionsArr.Add(wxT("BOTTOM")); m_choiceWorkspaceTabsOrientation->Clear(); m_choiceWorkspaceTabsOrientation->Append(tabOptionsArr); } #endif switch(options->GetOutputTabsDirection()) { case wxTOP: m_choiceOutputTabsOrientation->SetSelection(0); break; case wxBOTTOM: m_choiceOutputTabsOrientation->SetSelection(1); break; default: break; } #if 0 // On OSX we dont support left-right (due to blurred images) switch(options->GetWorkspaceTabsDirection()) { case wxLEFT: case wxTOP: m_choiceWorkspaceTabsOrientation->SetSelection(0); break; case wxRIGHT: case wxBOTTOM: m_choiceWorkspaceTabsOrientation->SetSelection(1); break; default: break; } #else switch(options->GetWorkspaceTabsDirection()) { case wxLEFT: m_choiceWorkspaceTabsOrientation->SetSelection(0); break; case wxRIGHT: m_choiceWorkspaceTabsOrientation->SetSelection(1); break; case wxTOP: m_choiceWorkspaceTabsOrientation->SetSelection(2); break; case wxBOTTOM: m_choiceWorkspaceTabsOrientation->SetSelection(3); break; default: break; } #endif m_checkBoxHideOutputPaneNotIfDebug->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(EditorSettingsDockingWindows::OnHideOutputPaneNotIfDebugUI), NULL, this); }