r2996 - in trunk/src/target/OM-2007.2/applications/openmoko-browser2: . src

zecke at sita.openmoko.org zecke at sita.openmoko.org
Tue Sep 18 03:40:50 CEST 2007


Author: zecke
Date: 2007-09-18 03:40:48 +0200 (Tue, 18 Sep 2007)
New Revision: 2996

Modified:
   trunk/src/target/OM-2007.2/applications/openmoko-browser2/ChangeLog
   trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/go-page.c
Log:
2007-09-17 Holger Hans Peter Freyther <zecke at selfish.org>

        Open a new page/replace the current page and implement searching
        the internet and visiting sites directly.

        * src/go-page.c:
        (autocorrect_url):
        (prepare_search):
        (go_clicked):
        (create_new_page_clicked):
        (setup_go_page):


Modified: trunk/src/target/OM-2007.2/applications/openmoko-browser2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-browser2/ChangeLog	2007-09-18 01:40:46 UTC (rev 2995)
+++ trunk/src/target/OM-2007.2/applications/openmoko-browser2/ChangeLog	2007-09-18 01:40:48 UTC (rev 2996)
@@ -1,5 +1,17 @@
 2007-09-17  Holger Hans Peter Freyther  <zecke at selfish.org>
 
+        Open a new page/replace the current page and implement searching
+        the internet and visiting sites directly.
+
+        * src/go-page.c:
+        (autocorrect_url):
+        (prepare_search):
+        (go_clicked):
+        (create_new_page_clicked):
+        (setup_go_page):
+
+2007-09-17  Holger Hans Peter Freyther  <zecke at selfish.org>
+
         Add the skeleton of the Go-Page to be able to create
         new pages.
 

Modified: trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/go-page.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/go-page.c	2007-09-18 01:40:46 UTC (rev 2995)
+++ trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/go-page.c	2007-09-18 01:40:48 UTC (rev 2996)
@@ -25,6 +25,7 @@
  */
 
 #include "config.h"
+#include "current-page.h"
 #include "go-page.h"
 
 #include <glib/gi18n.h>
@@ -48,6 +49,30 @@
     N_("Search in a new page")
 };
 
+/*
+ * From the GdkLauncher of WebKit
+ */
+static gchar* autocorrect_url(const gchar* url)
+{
+    if (strncmp ("http://", url, 7) != 0 && strncmp ("https://", url, 8) != 0 && strncmp ("file://", url, 7) != 0 && strncmp ("ftp://", url, 6) != 0) {
+        GString* string = g_string_new ("http://");
+        g_string_append (string, url);
+        return g_string_free (string, FALSE);
+    }
+
+    return g_strdup (url);
+}
+
+static gchar* prepare_search(const gchar* search_text)
+{
+    GString* string = g_string_new ("http://www.google.com/search?q=");
+    g_string_append (string, search_text);
+    return g_string_free (string, FALSE);
+}
+
+/*
+ * Heavily inspired by openmoko-contacts
+ */
 static gboolean entry_focus_in(GtkEntry* entry, GdkEventFocus* even, gchar* field_name)
 {
     if (!strcmp (gtk_entry_get_text (entry), field_name)) {
@@ -58,6 +83,9 @@
     return FALSE;
 }
 
+/*
+ * Heavily inspired by openmoko-contacts
+ */
 static gboolean entry_focus_out(GtkEntry* entry, GdkEventFocus* event, gchar* field_name)
 {
     if (gtk_entry_get_has_frame (entry) && strlen (gtk_entry_get_text (entry)) == 0) {
@@ -76,10 +104,38 @@
 
 static void go_clicked(GtkButton* btn, struct BrowserData* data)
 {
+    g_return_if_fail (data->currentPage);
+
+    gchar *url;
+    if (strlen(gtk_entry_get_text (data->goSearchEntry)) != 0 && strcmp (gtk_entry_get_text (data->goSearchEntry), _(search_names[SearchEntry])) != 0)
+        url = prepare_search (gtk_entry_get_text (data->goSearchEntry));
+    else
+        url = autocorrect_url (gtk_entry_get_text (data->goUrlEntry));
+
+    webkit_gtk_page_open (data->currentPage->webKitPage, url);
+    gtk_notebook_set_current_page (GTK_NOTEBOOK (data->mainNotebook), 0);
 }
 
+/*
+ * Create a list
+ */
 static void create_new_page_clicked(GtkButton* btn, struct BrowserData* data)
 {
+    const gchar* url;
+    if (strlen(gtk_entry_get_text (data->goSearchEntry)) != 0 && strcmp (gtk_entry_get_text (data->goSearchEntry), _(search_names[SearchEntry])) != 0)
+        url = prepare_search (gtk_entry_get_text (data->goSearchEntry));
+    else
+        url = autocorrect_url (gtk_entry_get_text (data->goUrlEntry));
+
+    struct BrowserPage* page = g_new(struct BrowserPage, 1);
+    page->webKitPage = WEBKIT_GTK_PAGE (webkit_gtk_page_new ());
+
+    data->browserPages = g_list_append (data->browserPages, page);
+    webkit_gtk_page_open (page->webKitPage, url);
+    set_current_page (page, data);
+    g_object_ref (page->webKitPage);
+
+    gtk_notebook_set_current_page (GTK_NOTEBOOK (data->mainNotebook), 0);
 }
 
 /*
@@ -124,5 +180,4 @@
     data->goButtonNewPage = gtk_button_new_with_label (search_names[GoNewPageUrl]);
     gtk_box_pack_start (box, GTK_WIDGET (data->goButtonNewPage), FALSE, TRUE, 0);
     g_signal_connect(data->goButtonNewPage, "clicked", G_CALLBACK(create_new_page_clicked), data);
-
 }





More information about the commitlog mailing list