* Added page for proxy server configuration to the Settings window.
* Added necessary wiring in BWebSettings for proxy server configuration. Actual proxy server usage untested, feedback welcome. git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@468 94f232f2-1747-11df-bad5-a5bfde151594
This commit is contained in:
committed by
Alexandre Deckner
parent
5913d4a98b
commit
99006ca0ae
@@ -42,3 +42,6 @@ const char* kDefaultStartPageURL
|
|||||||
= "file:///boot/system/documentation/welcome/welcome_en.html";
|
= "file:///boot/system/documentation/welcome/welcome_en.html";
|
||||||
const char* kDefaultSearchPageURL = "http://www.google.com";
|
const char* kDefaultSearchPageURL = "http://www.google.com";
|
||||||
|
|
||||||
|
const char* kSettingsKeyUseProxy = "use http proxy";
|
||||||
|
const char* kSettingsKeyProxyAddress = "http proxy address";
|
||||||
|
const char* kSettingsKeyProxyPort = "http proxy port";
|
||||||
|
|||||||
@@ -42,4 +42,8 @@ extern const char* kDefaultDownloadPath;
|
|||||||
extern const char* kDefaultStartPageURL;
|
extern const char* kDefaultStartPageURL;
|
||||||
extern const char* kDefaultSearchPageURL;
|
extern const char* kDefaultSearchPageURL;
|
||||||
|
|
||||||
|
extern const char* kSettingsKeyUseProxy;
|
||||||
|
extern const char* kSettingsKeyProxyAddress;
|
||||||
|
extern const char* kSettingsKeyProxyPort;
|
||||||
|
|
||||||
#endif // SETTINGS_KEYS_H
|
#endif // SETTINGS_KEYS_H
|
||||||
|
|||||||
@@ -78,6 +78,10 @@ enum {
|
|||||||
|
|
||||||
MSG_STANDARD_FONT_SIZE_SELECTED = 'sfss',
|
MSG_STANDARD_FONT_SIZE_SELECTED = 'sfss',
|
||||||
MSG_FIXED_FONT_SIZE_SELECTED = 'ffss',
|
MSG_FIXED_FONT_SIZE_SELECTED = 'ffss',
|
||||||
|
|
||||||
|
MSG_USE_PROXY_CHANGED = 'upsc',
|
||||||
|
MSG_PROXY_ADDRESS_CHANGED = 'psac',
|
||||||
|
MSG_PROXY_PORT_CHANGED = 'pspc',
|
||||||
};
|
};
|
||||||
|
|
||||||
static const int32 kDefaultFontSize = 14;
|
static const int32 kDefaultFontSize = 14;
|
||||||
@@ -112,6 +116,7 @@ SettingsWindow::SettingsWindow(BRect frame, SettingsMessage* settings)
|
|||||||
|
|
||||||
tabView->AddTab(_CreateGeneralPage(spacing));
|
tabView->AddTab(_CreateGeneralPage(spacing));
|
||||||
tabView->AddTab(_CreateFontsPage(spacing));
|
tabView->AddTab(_CreateFontsPage(spacing));
|
||||||
|
tabView->AddTab(_CreateProxyPage(spacing));
|
||||||
|
|
||||||
_SetupFontSelectionView(fStandardFontView,
|
_SetupFontSelectionView(fStandardFontView,
|
||||||
new BMessage(MSG_STANDARD_FONT_CHANGED));
|
new BMessage(MSG_STANDARD_FONT_CHANGED));
|
||||||
@@ -172,14 +177,14 @@ SettingsWindow::MessageReceived(BMessage* message)
|
|||||||
fStandardFontView->SetSize(size);
|
fStandardFontView->SetSize(size);
|
||||||
fSerifFontView->SetSize(size);
|
fSerifFontView->SetSize(size);
|
||||||
fSansSerifFontView->SetSize(size);
|
fSansSerifFontView->SetSize(size);
|
||||||
_ValidateButtonsEnabled();
|
_ValidateControlsEnabledStatus();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case MSG_FIXED_FONT_SIZE_SELECTED:
|
case MSG_FIXED_FONT_SIZE_SELECTED:
|
||||||
{
|
{
|
||||||
int32 size = _SizesMenuValue(fFixedSizesMenu->Menu());
|
int32 size = _SizesMenuValue(fFixedSizesMenu->Menu());
|
||||||
fFixedFontView->SetSize(size);
|
fFixedFontView->SetSize(size);
|
||||||
_ValidateButtonsEnabled();
|
_ValidateControlsEnabledStatus();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -194,8 +199,11 @@ SettingsWindow::MessageReceived(BMessage* message)
|
|||||||
case MSG_SERIF_FONT_CHANGED:
|
case MSG_SERIF_FONT_CHANGED:
|
||||||
case MSG_SANS_SERIF_FONT_CHANGED:
|
case MSG_SANS_SERIF_FONT_CHANGED:
|
||||||
case MSG_FIXED_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?
|
// TODO: Some settings could change live, some others not?
|
||||||
_ValidateButtonsEnabled();
|
_ValidateControlsEnabledStatus();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@@ -329,7 +337,7 @@ SettingsWindow::_CreateGeneralPage(float spacing)
|
|||||||
|
|
||||||
.SetInsets(spacing, spacing, spacing, spacing)
|
.SetInsets(spacing, spacing, spacing, spacing)
|
||||||
;
|
;
|
||||||
view->SetName("General");
|
view->SetName(TR("General"));
|
||||||
return view;
|
return view;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -383,7 +391,48 @@ SettingsWindow::_CreateFontsPage(float spacing)
|
|||||||
|
|
||||||
.SetInsets(spacing, spacing, spacing, spacing)
|
.SetInsets(spacing, spacing, spacing, spacing)
|
||||||
;
|
;
|
||||||
view->SetName("Fonts");
|
view->SetName(TR("Fonts"));
|
||||||
|
return view;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
BView*
|
||||||
|
SettingsWindow::_CreateProxyPage(float spacing)
|
||||||
|
{
|
||||||
|
fUseProxyCheckBox = new BCheckBox("use proxy",
|
||||||
|
TR("Use proxy server to connect to the internet."),
|
||||||
|
new BMessage(MSG_USE_PROXY_CHANGED));
|
||||||
|
fUseProxyCheckBox->SetValue(B_CONTROL_ON);
|
||||||
|
|
||||||
|
fProxyAddressControl = new BTextControl("proxy address",
|
||||||
|
TR("Proxy server address:"), "",
|
||||||
|
new BMessage(MSG_PROXY_ADDRESS_CHANGED));
|
||||||
|
fProxyAddressControl->SetModificationMessage(
|
||||||
|
new BMessage(MSG_PROXY_ADDRESS_CHANGED));
|
||||||
|
fProxyAddressControl->SetText(
|
||||||
|
fSettings->GetValue(kSettingsKeyProxyAddress, ""));
|
||||||
|
|
||||||
|
fProxyPortControl = new BTextControl("proxy port",
|
||||||
|
TR("Proxy server port:"), "", new BMessage(MSG_PROXY_PORT_CHANGED));
|
||||||
|
fProxyPortControl->SetModificationMessage(
|
||||||
|
new BMessage(MSG_PROXY_PORT_CHANGED));
|
||||||
|
fProxyPortControl->SetText(
|
||||||
|
fSettings->GetValue(kSettingsKeyProxyAddress, ""));
|
||||||
|
|
||||||
|
BView* view = BGroupLayoutBuilder(B_VERTICAL, spacing / 2)
|
||||||
|
.Add(fUseProxyCheckBox)
|
||||||
|
.Add(BGridLayoutBuilder(spacing / 2, spacing / 2)
|
||||||
|
.Add(fProxyAddressControl->CreateLabelLayoutItem(), 0, 0)
|
||||||
|
.Add(fProxyAddressControl->CreateTextViewLayoutItem(), 1, 0)
|
||||||
|
|
||||||
|
.Add(fProxyPortControl->CreateLabelLayoutItem(), 0, 1)
|
||||||
|
.Add(fProxyPortControl->CreateTextViewLayoutItem(), 1, 1)
|
||||||
|
)
|
||||||
|
.Add(BSpaceLayoutItem::CreateGlue())
|
||||||
|
|
||||||
|
.SetInsets(spacing, spacing, spacing, spacing)
|
||||||
|
;
|
||||||
|
view->SetName(TR("Proxy server"));
|
||||||
return view;
|
return view;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -482,6 +531,16 @@ SettingsWindow::_CanApplySettings() const
|
|||||||
canApply = canApply || (_SizesMenuValue(fFixedSizesMenu->Menu())
|
canApply = canApply || (_SizesMenuValue(fFixedSizesMenu->Menu())
|
||||||
!= fSettings->GetValue("fixed font size", kDefaultFontSize));
|
!= fSettings->GetValue("fixed font size", kDefaultFontSize));
|
||||||
|
|
||||||
|
// Proxy settings
|
||||||
|
canApply = canApply || ((fUseProxyCheckBox->Value() == B_CONTROL_ON)
|
||||||
|
!= fSettings->GetValue(kSettingsKeyUseProxy, false));
|
||||||
|
|
||||||
|
canApply = canApply || (strcmp(fProxyAddressControl->Text(),
|
||||||
|
fSettings->GetValue(kSettingsKeyProxyAddress, "")) != 0);
|
||||||
|
|
||||||
|
canApply = canApply || (_ProxyPort()
|
||||||
|
!= fSettings->GetValue(kSettingsKeyProxyPort, (uint32)0));
|
||||||
|
|
||||||
return canApply;
|
return canApply;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -516,6 +575,15 @@ SettingsWindow::_ApplySettings()
|
|||||||
fSettings->SetValue("standard font size", standardFontSize);
|
fSettings->SetValue("standard font size", standardFontSize);
|
||||||
fSettings->SetValue("fixed font size", fixedFontSize);
|
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->Save();
|
fSettings->Save();
|
||||||
|
|
||||||
// Apply settings to default web page settings.
|
// Apply settings to default web page settings.
|
||||||
@@ -526,12 +594,18 @@ SettingsWindow::_ApplySettings()
|
|||||||
BWebSettings::Default()->SetDefaultStandardFontSize(standardFontSize);
|
BWebSettings::Default()->SetDefaultStandardFontSize(standardFontSize);
|
||||||
BWebSettings::Default()->SetDefaultFixedFontSize(fixedFontSize);
|
BWebSettings::Default()->SetDefaultFixedFontSize(fixedFontSize);
|
||||||
|
|
||||||
|
if (fUseProxyCheckBox->Value() == B_CONTROL_ON) {
|
||||||
|
BWebSettings::Default()->SetProxyInfo(fProxyAddressControl->Text(),
|
||||||
|
proxyPort, B_PROXY_TYPE_HTTP, "", "");
|
||||||
|
} else
|
||||||
|
BWebSettings::Default()->SetProxyInfo();
|
||||||
|
|
||||||
// This will find all currently instantiated page settings and apply
|
// This will find all currently instantiated page settings and apply
|
||||||
// the default values, unless the page settings have local overrides.
|
// the default values, unless the page settings have local overrides.
|
||||||
BWebSettings::Default()->Apply();
|
BWebSettings::Default()->Apply();
|
||||||
|
|
||||||
|
|
||||||
_ValidateButtonsEnabled();
|
_ValidateControlsEnabledStatus();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -606,12 +680,21 @@ SettingsWindow::_RevertSettings()
|
|||||||
fFixedFontView->SetFont(fSettings->GetValue("fixed font",
|
fFixedFontView->SetFont(fSettings->GetValue("fixed font",
|
||||||
*be_fixed_font), defaultFixedFontSize);
|
*be_fixed_font), defaultFixedFontSize);
|
||||||
|
|
||||||
_ValidateButtonsEnabled();
|
// Proxy settings
|
||||||
|
fUseProxyCheckBox->SetValue(fSettings->GetValue(kSettingsKeyUseProxy,
|
||||||
|
false));
|
||||||
|
fProxyAddressControl->SetText(fSettings->GetValue(kSettingsKeyProxyAddress,
|
||||||
|
""));
|
||||||
|
text = "";
|
||||||
|
text << fSettings->GetValue(kSettingsKeyProxyPort, (uint32)0);
|
||||||
|
fProxyPortControl->SetText(text.String());
|
||||||
|
|
||||||
|
_ValidateControlsEnabledStatus();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
SettingsWindow::_ValidateButtonsEnabled()
|
SettingsWindow::_ValidateControlsEnabledStatus()
|
||||||
{
|
{
|
||||||
bool canApply = _CanApplySettings();
|
bool canApply = _CanApplySettings();
|
||||||
fApplyButton->SetEnabled(canApply);
|
fApplyButton->SetEnabled(canApply);
|
||||||
@@ -619,6 +702,10 @@ SettingsWindow::_ValidateButtonsEnabled()
|
|||||||
// Let the Cancel button be enabled always, as another way to close the
|
// Let the Cancel button be enabled always, as another way to close the
|
||||||
// window...
|
// window...
|
||||||
fCancelButton->SetEnabled(true);
|
fCancelButton->SetEnabled(true);
|
||||||
|
|
||||||
|
bool useProxy = fUseProxyCheckBox->Value() == B_CONTROL_ON;
|
||||||
|
fProxyAddressControl->SetEnabled(useProxy);
|
||||||
|
fProxyPortControl->SetEnabled(useProxy);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -714,3 +801,12 @@ SettingsWindow::_FindDefaultSerifFont() const
|
|||||||
}
|
}
|
||||||
return serifFont;
|
return serifFont;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
uint32
|
||||||
|
SettingsWindow::_ProxyPort() const
|
||||||
|
{
|
||||||
|
return atoul(fProxyPortControl->Text());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -53,6 +53,7 @@ public:
|
|||||||
private:
|
private:
|
||||||
BView* _CreateGeneralPage(float spacing);
|
BView* _CreateGeneralPage(float spacing);
|
||||||
BView* _CreateFontsPage(float spacing);
|
BView* _CreateFontsPage(float spacing);
|
||||||
|
BView* _CreateProxyPage(float spacing);
|
||||||
void _BuildSizesMenu(BMenu* menu,
|
void _BuildSizesMenu(BMenu* menu,
|
||||||
uint32 messageWhat);
|
uint32 messageWhat);
|
||||||
void _SetupFontSelectionView(
|
void _SetupFontSelectionView(
|
||||||
@@ -62,7 +63,7 @@ private:
|
|||||||
bool _CanApplySettings() const;
|
bool _CanApplySettings() const;
|
||||||
void _ApplySettings();
|
void _ApplySettings();
|
||||||
void _RevertSettings();
|
void _RevertSettings();
|
||||||
void _ValidateButtonsEnabled();
|
void _ValidateControlsEnabledStatus();
|
||||||
|
|
||||||
uint32 _NewWindowPolicy() const;
|
uint32 _NewWindowPolicy() const;
|
||||||
uint32 _NewTabPolicy() const;
|
uint32 _NewTabPolicy() const;
|
||||||
@@ -73,6 +74,8 @@ private:
|
|||||||
|
|
||||||
BFont _FindDefaultSerifFont() const;
|
BFont _FindDefaultSerifFont() const;
|
||||||
|
|
||||||
|
uint32 _ProxyPort() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
SettingsMessage* fSettings;
|
SettingsMessage* fSettings;
|
||||||
|
|
||||||
@@ -99,6 +102,10 @@ private:
|
|||||||
FontSelectionView* fSansSerifFontView;
|
FontSelectionView* fSansSerifFontView;
|
||||||
FontSelectionView* fFixedFontView;
|
FontSelectionView* fFixedFontView;
|
||||||
|
|
||||||
|
BCheckBox* fUseProxyCheckBox;
|
||||||
|
BTextControl* fProxyAddressControl;
|
||||||
|
BTextControl* fProxyPortControl;
|
||||||
|
|
||||||
BButton* fApplyButton;
|
BButton* fApplyButton;
|
||||||
BButton* fCancelButton;
|
BButton* fCancelButton;
|
||||||
BButton* fRevertButton;
|
BButton* fRevertButton;
|
||||||
|
|||||||
Reference in New Issue
Block a user