[prev in list] [next in list] [prev in thread] [next in thread]
List: haiku-commits
Subject: [haiku-commits] haiku: hrev52686 - src/apps/webpositive
From: waddlesplash <waddlesplash () gmail ! com>
Date: 2018-12-25 18:48:28
Message-ID: 20181225184828.1B3DC210D8 () turing ! freelists ! org
[Download RAW message or body]
hrev52686 adds 1 changeset to branch 'master'
old head: 0ca55d11ebd68f1d5139031d6bd6795e1344dfb3
new head: 20e0f7607c4f0fe784a4b2cb800aeff67fb2652e
overview: https://git.haiku-os.org/haiku/log/?qt=range&q e0f7607c4f+%5E0ca55d11ebd6
----------------------------------------------------------------------------
20e0f7607c4f: WebPositive: Add default download folder location option.
Change-Id: I76e90646c5e7d9a4082cd1c237047c0eda16b9e6
Reviewed-on: https://review.haiku-os.org/786
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
[ Rajagopalan-Gangadharan <g.raju2000@gmail.com> ]
----------------------------------------------------------------------------
Revision: hrev52686
Commit: 20e0f7607c4f0fe784a4b2cb800aeff67fb2652e
URL: https://git.haiku-os.org/haiku/commit/?id e0f7607c4f
Author: Rajagopalan-Gangadharan <g.raju2000@gmail.com>
Date: Wed Dec 19 08:22:25 2018 UTC
Committer: waddlesplash <waddlesplash@gmail.com>
Commit-Date: Tue Dec 25 18:48:14 2018 UTC
----------------------------------------------------------------------------
2 files changed, 56 insertions(+), 5 deletions(-)
src/apps/webpositive/SettingsWindow.cpp | 52 ++++++++++++++++++++++++++---
src/apps/webpositive/SettingsWindow.h | 9 +++++
----------------------------------------------------------------------------
diff --git a/src/apps/webpositive/SettingsWindow.cpp b/src/apps/webpositive/SettingsWindow.cpp
index 51e578dcc7..0e283c33d1 100644
--- a/src/apps/webpositive/SettingsWindow.cpp
+++ b/src/apps/webpositive/SettingsWindow.cpp
@@ -8,6 +8,7 @@
#include <Button.h>
#include <CheckBox.h>
#include <ControlLook.h>
+#include <FilePanel.h>
#include <GridLayoutBuilder.h>
#include <GroupLayout.h>
#include <GroupLayoutBuilder.h>
@@ -70,6 +71,9 @@ enum {
MSG_USE_PROXY_AUTH_CHANGED = 'upsa',
MSG_PROXY_USERNAME_CHANGED = 'psuc',
MSG_PROXY_PASSWORD_CHANGED = 'pswc',
+
+ MSG_CHOOSE_DOWNLOAD_FOLDER = 'swop',
+ MSG_HANDLE_DOWNLOAD_FOLDER = 'oprs',
};
static const int32 kDefaultFontSize = 14;
@@ -88,6 +92,8 @@ SettingsWindow::SettingsWindow(BRect frame, SettingsMessage* settings)
fRevertButton = new BButton(B_TRANSLATE("Revert"),
new BMessage(MSG_REVERT));
+ fOpenFilePanel = NULL;
+
float spacing = be_control_look->DefaultItemSpacing();
BTabView* tabView = new BTabView("settings pages", B_WIDTH_FROM_LABEL);
@@ -144,6 +150,7 @@ SettingsWindow::~SettingsWindow()
delete fSansSerifFontView;
RemoveHandler(fFixedFontView);
delete fFixedFontView;
+ delete fOpenFilePanel;
}
@@ -161,7 +168,12 @@ SettingsWindow::MessageReceived(BMessage* message)
case MSG_REVERT:
_RevertSettings();
break;
-
+ case MSG_CHOOSE_DOWNLOAD_FOLDER:
+ _ChooseDownloadFolder(message);
+ break;
+ case MSG_HANDLE_DOWNLOAD_FOLDER:
+ _HandleDownloadPanelResult(fOpenFilePanel, message);
+ break;
case MSG_STANDARD_FONT_SIZE_SELECTED:
{
int32 size = _SizesMenuValue(fStandardSizesMenu->Menu());
@@ -286,6 +298,8 @@ SettingsWindow::_CreateGeneralPage(float spacing)
fNewTabBehaviorOpenBlankItem = new BMenuItem(
B_TRANSLATE("Open blank page"),
new BMessage(MSG_NEW_TABS_BEHAVIOR_CHANGED));
+ fChooseButton = new BButton(B_TRANSLATE("Browse" B_UTF8_ELLIPSIS),
+ new BMessage(MSG_CHOOSE_DOWNLOAD_FOLDER));
fNewWindowBehaviorOpenHomeItem->SetMarked(true);
fNewTabBehaviorOpenBlankItem->SetMarked(true);
@@ -340,11 +354,12 @@ SettingsWindow::_CreateGeneralPage(float spacing)
.Add(fSearchPageControl->CreateLabelLayoutItem(), 0, 1)
.Add(fSearchPageControl->CreateTextViewLayoutItem(), 1, 1)
- .Add(fDownloadFolderControl->CreateLabelLayoutItem(), 0, 2)
- .Add(fDownloadFolderControl->CreateTextViewLayoutItem(), 1, 2)
+ .Add(fNewWindowBehaviorMenu->CreateLabelLayoutItem(), 0, 2)
+ .Add(fNewWindowBehaviorMenu->CreateMenuBarLayoutItem(), 1, 2)
- .Add(fNewWindowBehaviorMenu->CreateLabelLayoutItem(), 0, 3)
- .Add(fNewWindowBehaviorMenu->CreateMenuBarLayoutItem(), 1, 3)
+ .Add(fDownloadFolderControl->CreateLabelLayoutItem(), 0, 3)
+ .Add(fDownloadFolderControl->CreateTextViewLayoutItem(), 1, 3)
+ .Add(fChooseButton, 2, 3)
.Add(fNewTabBehaviorMenu->CreateLabelLayoutItem(), 0, 4)
.Add(fNewTabBehaviorMenu->CreateMenuBarLayoutItem(), 1, 4)
@@ -794,6 +809,33 @@ SettingsWindow::_RevertSettings()
}
+void
+SettingsWindow::_ChooseDownloadFolder(const BMessage* message)
+{
+ if (fOpenFilePanel == NULL) {
+ BMessenger target(this);
+ fOpenFilePanel = new (std::nothrow) BFilePanel(B_OPEN_PANEL,
+ &target, NULL, B_DIRECTORY_NODE);
+ }
+ BMessage panelMessage(MSG_HANDLE_DOWNLOAD_FOLDER);
+ fOpenFilePanel->SetMessage(&panelMessage);
+ fOpenFilePanel->Show();
+}
+
+
+void
+SettingsWindow:: _HandleDownloadPanelResult(BFilePanel* panel,
+ const BMessage* message)
+{
+ entry_ref ref;
+ if (message->FindRef("refs", 0, &ref) == B_OK)
+ {
+ BPath path(&ref);
+ fDownloadFolderControl->SetText(path.Path());
+ }
+}
+
+
void
SettingsWindow::_ValidateControlsEnabledStatus()
{
diff --git a/src/apps/webpositive/SettingsWindow.h b/src/apps/webpositive/SettingsWindow.h
index 4511c5a33e..7595b4925a 100644
--- a/src/apps/webpositive/SettingsWindow.h
+++ b/src/apps/webpositive/SettingsWindow.h
@@ -8,6 +8,7 @@
#include <Window.h>
+
class BButton;
class BCheckBox;
class BMenu;
@@ -17,6 +18,7 @@ class BSpinner;
class BTextControl;
class FontSelectionView;
class SettingsMessage;
+class BFilePanel;
class SettingsWindow : public BWindow {
@@ -43,6 +45,10 @@ private:
bool _CanApplySettings() const;
void _ApplySettings();
void _RevertSettings();
+ void _ChooseDownloadFolder(const BMessage* message);
+
+ void _HandleDownloadPanelResult(BFilePanel* panel,
+ const BMessage* message);
void _ValidateControlsEnabledStatus();
uint32 _NewWindowPolicy() const;
@@ -94,9 +100,12 @@ private:
BButton* fApplyButton;
BButton* fCancelButton;
BButton* fRevertButton;
+ BButton* fChooseButton;
BMenuField* fStandardSizesMenu;
BMenuField* fFixedSizesMenu;
+
+ BFilePanel* fOpenFilePanel;
};
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic