void SettingsWindow::MessageReceived(BMessage* message) { switch (message->what) { case MSG_APPLY: _ApplySettings(); break; case MSG_CANCEL: _RevertSettings(); PostMessage(B_QUIT_REQUESTED); break; case MSG_REVERT: _RevertSettings(); break; case MSG_STANDARD_FONT_SIZE_SELECTED: { int32 size = _SizesMenuValue(fStandardSizesMenu->Menu()); fStandardFontView->SetSize(size); fSerifFontView->SetSize(size); fSansSerifFontView->SetSize(size); _ValidateControlsEnabledStatus(); break; } case MSG_FIXED_FONT_SIZE_SELECTED: { int32 size = _SizesMenuValue(fFixedSizesMenu->Menu()); fFixedFontView->SetSize(size); _ValidateControlsEnabledStatus(); break; } case MSG_START_PAGE_CHANGED: case MSG_SEARCH_PAGE_CHANGED: case MSG_DOWNLOAD_FOLDER_CHANGED: case MSG_NEW_WINDOWS_BEHAVIOR_CHANGED: case MSG_NEW_TABS_BEHAVIOR_CHANGED: case MSG_HISTORY_MENU_DAYS_CHANGED: case MSG_TAB_DISPLAY_BEHAVIOR_CHANGED: case MSG_AUTO_HIDE_INTERFACE_BEHAVIOR_CHANGED: case MSG_AUTO_HIDE_POINTER_BEHAVIOR_CHANGED: case MSG_SHOW_HOME_BUTTON_CHANGED: case MSG_STANDARD_FONT_CHANGED: case MSG_SERIF_FONT_CHANGED: case MSG_SANS_SERIF_FONT_CHANGED: case MSG_FIXED_FONT_CHANGED: case MSG_USE_PROXY_CHANGED: case MSG_PROXY_ADDRESS_CHANGED: case MSG_PROXY_PORT_CHANGED: // TODO: Some settings could change live, some others not? _ValidateControlsEnabledStatus(); break; default: BWindow::MessageReceived(message); break; } }
void SettingsWindow::_RevertSettings() { fStartPageControl->SetText( fSettings->GetValue(kSettingsKeyStartPageURL, kDefaultStartPageURL)); fSearchPageControl->SetText( fSettings->GetValue(kSettingsKeySearchPageURL, kDefaultSearchPageURL)); fDownloadFolderControl->SetText( fSettings->GetValue(kSettingsKeyDownloadPath, kDefaultDownloadPath)); fShowTabsIfOnlyOnePage->SetValue( fSettings->GetValue(kSettingsKeyShowTabsIfSinglePageOpen, true)); fAutoHideInterfaceInFullscreenMode->SetValue( fSettings->GetValue(kSettingsKeyAutoHideInterfaceInFullscreenMode, false)); fAutoHidePointer->SetValue( fSettings->GetValue(kSettingsKeyAutoHidePointer, false)); fShowHomeButton->SetValue( fSettings->GetValue(kSettingsKeyShowHomeButton, true)); BString text; text << BrowsingHistory::DefaultInstance()->MaxHistoryItemAge(); fDaysInHistoryMenuControl->SetText(text.String()); // New window policy uint32 newWindowPolicy = fSettings->GetValue(kSettingsKeyNewWindowPolicy, (uint32)OpenStartPage); switch (newWindowPolicy) { default: case OpenStartPage: fNewWindowBehaviorOpenHomeItem->SetMarked(true); break; case OpenSearchPage: fNewWindowBehaviorOpenSearchItem->SetMarked(true); break; case OpenBlankPage: fNewWindowBehaviorOpenBlankItem->SetMarked(true); break; } // New tab policy uint32 newTabPolicy = fSettings->GetValue(kSettingsKeyNewTabPolicy, (uint32)OpenBlankPage); switch (newTabPolicy) { default: case OpenBlankPage: fNewTabBehaviorOpenBlankItem->SetMarked(true); break; case OpenStartPage: fNewTabBehaviorOpenHomeItem->SetMarked(true); break; case OpenSearchPage: fNewTabBehaviorOpenSearchItem->SetMarked(true); break; case CloneCurrentPage: fNewTabBehaviorCloneCurrentItem->SetMarked(true); break; } // Font settings int32 defaultFontSize = fSettings->GetValue("standard font size", kDefaultFontSize); int32 defaultFixedFontSize = fSettings->GetValue("fixed font size", kDefaultFontSize); _SetSizesMenuValue(fStandardSizesMenu->Menu(), defaultFontSize); _SetSizesMenuValue(fFixedSizesMenu->Menu(), defaultFixedFontSize); fStandardFontView->SetFont(fSettings->GetValue("standard font", *be_plain_font), defaultFontSize); fSerifFontView->SetFont(fSettings->GetValue("serif font", _FindDefaultSerifFont()), defaultFontSize); fSansSerifFontView->SetFont(fSettings->GetValue("sans serif font", *be_plain_font), defaultFontSize); fFixedFontView->SetFont(fSettings->GetValue("fixed font", *be_fixed_font), defaultFixedFontSize); // Proxy settings fUseProxyCheckBox->SetValue(fSettings->GetValue(kSettingsKeyUseProxy, false)); fProxyAddressControl->SetText(fSettings->GetValue(kSettingsKeyProxyAddress, "")); text = ""; text << fSettings->GetValue(kSettingsKeyProxyPort, (uint32)0); fProxyPortControl->SetText(text.String()); fUseProxyAuthCheckBox->SetValue(fSettings->GetValue(kSettingsKeyUseProxyAuth, false)); fProxyUsernameControl->SetText(fSettings->GetValue(kSettingsKeyProxyUsername, "")); fProxyPasswordControl->SetText(fSettings->GetValue(kSettingsKeyProxyPassword, "")); _ValidateControlsEnabledStatus(); }
void SettingsWindow::_ApplySettings() { // Store general settings int32 maxHistoryAge = _MaxHistoryAge(); BString text; text << maxHistoryAge; fDaysInHistoryMenuControl->SetText(text.String()); BrowsingHistory::DefaultInstance()->SetMaxHistoryItemAge(maxHistoryAge); fSettings->SetValue(kSettingsKeyStartPageURL, fStartPageControl->Text()); fSettings->SetValue(kSettingsKeySearchPageURL, fSearchPageControl->Text()); fSettings->SetValue(kSettingsKeyDownloadPath, fDownloadFolderControl->Text()); fSettings->SetValue(kSettingsKeyShowTabsIfSinglePageOpen, fShowTabsIfOnlyOnePage->Value() == B_CONTROL_ON); fSettings->SetValue(kSettingsKeyAutoHideInterfaceInFullscreenMode, fAutoHideInterfaceInFullscreenMode->Value() == B_CONTROL_ON); fSettings->SetValue(kSettingsKeyAutoHidePointer, fAutoHidePointer->Value() == B_CONTROL_ON); fSettings->SetValue(kSettingsKeyShowHomeButton, fShowHomeButton->Value() == B_CONTROL_ON); // New page policies fSettings->SetValue(kSettingsKeyNewWindowPolicy, _NewWindowPolicy()); fSettings->SetValue(kSettingsKeyNewTabPolicy, _NewTabPolicy()); // Store fond settings fSettings->SetValue("standard font", fStandardFontView->Font()); fSettings->SetValue("serif font", fSerifFontView->Font()); fSettings->SetValue("sans serif font", fSansSerifFontView->Font()); fSettings->SetValue("fixed font", fFixedFontView->Font()); int32 standardFontSize = _SizesMenuValue(fStandardSizesMenu->Menu()); int32 fixedFontSize = _SizesMenuValue(fFixedSizesMenu->Menu()); fSettings->SetValue("standard font size", standardFontSize); fSettings->SetValue("fixed font size", fixedFontSize); // Store proxy settings fSettings->SetValue(kSettingsKeyUseProxy, fUseProxyCheckBox->Value() == B_CONTROL_ON); fSettings->SetValue(kSettingsKeyProxyAddress, fProxyAddressControl->Text()); uint32 proxyPort = _ProxyPort(); fSettings->SetValue(kSettingsKeyProxyPort, proxyPort); fSettings->SetValue(kSettingsKeyUseProxyAuth, fUseProxyAuthCheckBox->Value() == B_CONTROL_ON); fSettings->SetValue(kSettingsKeyProxyUsername, fProxyUsernameControl->Text()); fSettings->SetValue(kSettingsKeyProxyPassword, fProxyPasswordControl->Text()); fSettings->Save(); // Apply settings to default web page settings. BWebSettings::Default()->SetStandardFont(fStandardFontView->Font()); BWebSettings::Default()->SetSerifFont(fSerifFontView->Font()); BWebSettings::Default()->SetSansSerifFont(fSansSerifFontView->Font()); BWebSettings::Default()->SetFixedFont(fFixedFontView->Font()); BWebSettings::Default()->SetDefaultStandardFontSize(standardFontSize); BWebSettings::Default()->SetDefaultFixedFontSize(fixedFontSize); if (fUseProxyCheckBox->Value() == B_CONTROL_ON) { if (fUseProxyAuthCheckBox->Value() == B_CONTROL_ON) { BWebSettings::Default()->SetProxyInfo(fProxyAddressControl->Text(), proxyPort, B_PROXY_TYPE_HTTP, fProxyUsernameControl->Text(), fProxyPasswordControl->Text()); } else { BWebSettings::Default()->SetProxyInfo(fProxyAddressControl->Text(), proxyPort, B_PROXY_TYPE_HTTP, "", ""); } } else BWebSettings::Default()->SetProxyInfo(); // This will find all currently instantiated page settings and apply // the default values, unless the page settings have local overrides. BWebSettings::Default()->Apply(); _ValidateControlsEnabledStatus(); }