Currently searches won't be stored persistently in the database.
g_free (current_dir);
}
else
- uri_ready = sokoke_magic_uri (uri, NULL);
+ uri_ready = sokoke_magic_uri (uri, NULL, NULL);
katze_item_set_uri (item, uri_ready);
g_free (uri_ready);
katze_array_add_item (_session, item);
first = (open_external_pages_in == MIDORI_NEW_PAGE_CURRENT);
while (*uris)
{
- gchar* fixed_uri = sokoke_magic_uri (*uris, NULL);
+ gchar* fixed_uri = sokoke_magic_uri (*uris, NULL, NULL);
if (first)
{
midori_browser_set_current_uri (browser, fixed_uri);
midori_browser_add_download_item (MidoriBrowser* browser,
WebKitDownload* download);
+GdkPixbuf*
+midori_search_action_get_icon (KatzeItem* item,
+ GtkWidget* widget,
+ const gchar** icon_name);
+
static GtkAction*
_action_by_name (MidoriBrowser* browser,
const gchar* name)
return;
/* Imported bookmarks may lack a protocol */
- uri_fixed = sokoke_magic_uri (uri, NULL);
+ uri_fixed = sokoke_magic_uri (uri, NULL, NULL);
/* FIXME: Use the same binary that is running right now */
if (katze_item_get_meta_integer (item, "app") != -1)
midori_location_action_set_uri (MIDORI_LOCATION_ACTION (action), uri);
}
+
+
static void
_action_location_submit_uri (GtkAction* action,
const gchar* uri,
{
gchar* stripped_uri;
gchar* new_uri;
+ KatzeItem* item;
gint n;
stripped_uri = g_strdup (uri);
g_strstrip (stripped_uri);
- new_uri = sokoke_magic_uri (stripped_uri, browser->search_engines);
+ item = NULL;
+ new_uri = sokoke_magic_uri (stripped_uri, browser->search_engines, &item);
if (!new_uri)
new_uri = sokoke_search_uri (browser->location_entry_search, stripped_uri);
g_free (stripped_uri);
+ if (item)
+ {
+ gchar* title;
+ GdkPixbuf* icon;
+ const gchar* icon_name;
+
+ title = g_strdup_printf (_("Search with %s"), katze_item_get_name (item));
+ icon = midori_search_action_get_icon (item, GTK_WIDGET (browser), &icon_name);
+ if (!icon)
+ {
+ GdkScreen* screen = gtk_widget_get_screen (GTK_WIDGET (browser));
+ GtkIconTheme* icon_theme = gtk_icon_theme_get_for_screen (screen);
+ icon = gtk_icon_theme_load_icon (icon_theme, icon_name, 16, 0, NULL);
+ }
+ midori_location_action_add_item (MIDORI_LOCATION_ACTION (action),
+ uri, icon, title);
+ if (icon)
+ g_object_unref (icon);
+ g_free (title);
+ }
+
if (new_tab)
{
n = midori_browser_add_uri (browser, new_uri);
while (uri[i++] != '\0')
if (uri[i] == '\n' || uri[i] == '\r')
uri[i] = ' ';
- new_uri = sokoke_magic_uri (g_strstrip (uri), empty_array);
+ new_uri = sokoke_magic_uri (g_strstrip (uri), empty_array, NULL);
g_object_unref (empty_array);
if (!new_uri)
{
}
else
{
- gchar* uri = sokoke_magic_uri (data, NULL);
+ gchar* uri = sokoke_magic_uri (data, NULL, NULL);
g_signal_emit (view, signals[NEW_TAB], 0, uri,
view->open_tabs_in_the_background);
g_free (uri);
* sokoke_magic_uri:
* @uri: a string typed by a user
* @search_engines: search engines
+ * @item: the location to store a #KatzeItem
*
* Takes a string that was typed by a user,
* guesses what it is, and returns an URI.
*
+ * If it was a search, @item will contain the engine.
+ *
* Return value: a newly allocated URI
**/
gchar*
sokoke_magic_uri (const gchar* uri,
- KatzeArray* search_engines)
+ KatzeArray* search_engines,
+ KatzeItem** found_item)
{
gchar** parts;
gchar* search;
{
search_uri = katze_item_get_uri (item);
search = sokoke_search_uri (search_uri, parts[1] ? parts[1] : "");
+ if (found_item)
+ *found_item = item;
}
g_strfreev (parts);
return search;
gchar*
sokoke_magic_uri (const gchar* uri,
- KatzeArray* search_engines);
+ KatzeArray* search_engines,
+ KatzeItem** found_item);
gchar*
sokoke_format_uri_for_display (const gchar* uri);
g_object_unref (item);
}
- gchar* uri = sokoke_magic_uri (input, search_engines);
+ gchar* uri = sokoke_magic_uri (input, search_engines, NULL);
sokoke_assert_str_equal (input, uri, expected);
g_free (uri);
}