[haiku-commits] haiku: hrev46671 - src/apps/webpositive

  • From: pulkomandy@xxxxxxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Tue, 14 Jan 2014 09:43:38 +0100 (CET)

hrev46671 adds 1 changeset to branch 'master'
old head: e13de87284afabbe78a77d8ef205544307f8ac05
new head: d21e9097b6c992cb761b337b38486627226dee24
overview: http://cgit.haiku-os.org/haiku/log/?qt=range&q=d21e909+%5Ee13de87

----------------------------------------------------------------------------

d21e909: Use configured search string for searching
  
  - The search query position is signified by %s in the search string,
  - Automatically migrate the old default search string to the new one.
  
  Patch from #9926 with some rework from me.

                                 [ Kevin Harris <kevin@xxxxxxxxxxxxxxxxxx> ]

----------------------------------------------------------------------------

Revision:    hrev46671
Commit:      d21e9097b6c992cb761b337b38486627226dee24
URL:         http://cgit.haiku-os.org/haiku/commit/?id=d21e909
Author:      Kevin Harris <kevin@xxxxxxxxxxxxxxxxxx>
Date:        Fri Aug 16 19:53:01 2013 UTC
Committer:   Adrien Destugues <pulkomandy@xxxxxxxxxxxxx>
Commit-Date: Tue Jan 14 08:39:42 2014 UTC

Ticket:      https://dev.haiku-os.org/ticket/9926

----------------------------------------------------------------------------

3 files changed, 19 insertions(+), 17 deletions(-)
src/apps/webpositive/BrowserWindow.cpp  | 24 ++++++++++--------------
src/apps/webpositive/SettingsKeys.cpp   |  2 +-
src/apps/webpositive/SettingsWindow.cpp | 10 ++++++++--

----------------------------------------------------------------------------

diff --git a/src/apps/webpositive/BrowserWindow.cpp 
b/src/apps/webpositive/BrowserWindow.cpp
index 54a3354..1775967 100644
--- a/src/apps/webpositive/BrowserWindow.cpp
+++ b/src/apps/webpositive/BrowserWindow.cpp
@@ -2259,6 +2259,9 @@ BrowserWindow::_NewTabURL(bool isNewWindow) const
 BString
 BrowserWindow::_EncodeURIComponent(const BString& search)
 {
+       // We have to take care of some of the escaping before we hand over the
+       // search string to WebKit, if we want queries like "4+3" to not be
+       // searched as "4 3".
        const BString escCharList = " $&`:<>[]{}\"+#%@/;=?\\^|~\',";
        BString result = search;
        char hexcode[4];
@@ -2287,15 +2290,10 @@ BrowserWindow::_VisitURL(const BString& url)
 void
 BrowserWindow::_VisitSearchEngine(const BString& search)
 {
-       // TODO: Google Code-In Task to make default search
-       //                      engine modifiable from Settings? :)
-
-       BString engine = "http://www.google.com/search?q=";;
-       engine += _EncodeURIComponent(search);
-               // We have to take care of some of the escaping before
-               // we hand over the string to WebKit, if we want queries
-               // like "4+3" to not be searched as "4 3".
-
+       BString engine = "";
+       engine.SetToFormat(fSearchPageURL, 
+               _EncodeURIComponent(search).String());
+       
        _VisitURL(engine);
 }
 
@@ -2303,11 +2301,9 @@ BrowserWindow::_VisitSearchEngine(const BString& search)
 inline bool
 BrowserWindow::_IsValidDomainChar(char ch)
 {
-       // TODO: Currenlty, only a whitespace character
-       //                      breaks a domain name. It might be
-       //                      a good idea (or a bad one) to make
-       //                      character filtering based on the
-       //                      IDNA 2008 standard.
+       // TODO: Currenlty, only a whitespace character breaks a domain name. It
+       // might be a good idea (or a bad one) to make character filtering 
based on
+       // the IDNA 2008 standard.
 
        return ch != ' ';
 }
diff --git a/src/apps/webpositive/SettingsKeys.cpp 
b/src/apps/webpositive/SettingsKeys.cpp
index 7d106d1..c724682 100644
--- a/src/apps/webpositive/SettingsKeys.cpp
+++ b/src/apps/webpositive/SettingsKeys.cpp
@@ -23,7 +23,7 @@ const char* kSettingsKeySearchPageURL = "search page url";
 const char* kDefaultDownloadPath = "/boot/home/Desktop/";
 const char* kDefaultStartPageURL
        = "file:///boot/home/config/settings/WebPositive/LoaderPages/Welcome";
-const char* kDefaultSearchPageURL = "http://www.google.com";;
+const char* kDefaultSearchPageURL = "http://www.google.com/search?q=%s";;
 
 const char* kSettingsKeyUseProxy = "use http proxy";
 const char* kSettingsKeyProxyAddress = "http proxy address";
diff --git a/src/apps/webpositive/SettingsWindow.cpp 
b/src/apps/webpositive/SettingsWindow.cpp
index 93473dd..70bdf84 100644
--- a/src/apps/webpositive/SettingsWindow.cpp
+++ b/src/apps/webpositive/SettingsWindow.cpp
@@ -245,8 +245,14 @@ SettingsWindow::_CreateGeneralPage(float spacing)
                new BMessage(MSG_SEARCH_PAGE_CHANGED));
        fSearchPageControl->SetModificationMessage(
                new BMessage(MSG_SEARCH_PAGE_CHANGED));
-       fSearchPageControl->SetText(
-               fSettings->GetValue(kSettingsKeySearchPageURL, 
kDefaultSearchPageURL));
+       BString searchURL = fSettings->GetValue(kSettingsKeySearchPageURL,
+               kDefaultSearchPageURL);
+       if (searchURL == "http://www.google.com";) {
+               // Migrate old settings files.
+               searchURL = kDefaultSearchPageURL;
+               fSettings->SetValue(kSettingsKeySearchPageURL, 
kDefaultSearchPageURL);
+       }
+       fSearchPageControl->SetText(searchURL);
 
        fDownloadFolderControl = new BTextControl("download folder",
                B_TRANSLATE("Download folder:"), "",


Other related posts: