[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