midori_SOURCES = \
main.c main.h \
+ midori-item.c midori-item.h \
midori-app.c midori-app.h \
midori-browser.c midori-browser.h \
midori-panel.c midori-panel.h \
{
signals[INSERTED] = g_signal_new (
"inserted",
- G_TYPE_FROM_CLASS(class),
+ G_TYPE_FROM_CLASS (class),
(GSignalFlags)(G_SIGNAL_RUN_LAST),
G_STRUCT_OFFSET (MidoriTrashClass, inserted),
0,
signals[REMOVED] = g_signal_new (
"removed",
- G_TYPE_FROM_CLASS(class),
+ G_TYPE_FROM_CLASS (class),
(GSignalFlags)(G_SIGNAL_RUN_LAST),
G_STRUCT_OFFSET (MidoriTrashClass, removed),
0,
PROP_LIMIT,
g_param_spec_uint (
"limit",
- "Limit",
+ _("Limit"),
_("The maximum number of items"),
0, G_MAXUINT, 10,
flags));
--- /dev/null
+/*
+ Copyright (C) 2008 Christian Dywan <christian@twotoasts.de>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ See the file COPYING for the full license text.
+*/
+
+#include "midori-webitem.h"
+
+#include <glib/gi18n.h>
+#include <katze/katze.h>
+
+struct _MidoriWebItem
+{
+ GObject parent_instance;
+
+ gchar* name;
+ gchar* description;
+ gchar* uri;
+ gchar* icon;
+ gchar* token;
+};
+
+G_DEFINE_TYPE (MidoriWebItem, midori_web_item, G_TYPE_OBJECT)
+
+enum
+{
+ PROP_0,
+
+ PROP_NAME,
+ PROP_DESCRIPTION,
+ PROP_URI,
+ PROP_ICON,
+ PROP_TOKEN
+};
+
+static void
+midori_web_item_finalize (GObject* object);
+
+static void
+midori_web_item_set_property (GObject* object,
+ guint prop_id,
+ const GValue* value,
+ GParamSpec* pspec);
+
+static void
+midori_web_item_get_property (GObject* object,
+ guint prop_id,
+ GValue* value,
+ GParamSpec* pspec);
+
+static void
+midori_web_item_class_init (MidoriWebItemClass* class)
+{
+ GObjectClass* gobject_class = G_OBJECT_CLASS (class);
+ gobject_class->finalize = midori_web_item_finalize;
+ gobject_class->set_property = midori_web_item_set_property;
+ gobject_class->get_property = midori_web_item_get_property;
+
+ GParamFlags flags = G_PARAM_READWRITE | G_PARAM_CONSTRUCT;
+
+ g_object_class_install_property (gobject_class,
+ PROP_NAME,
+ g_param_spec_string (
+ "name",
+ _("Name"),
+ _("The name of the web item"),
+ NULL,
+ flags));
+
+ g_object_class_install_property (gobject_class,
+ PROP_DESCRIPTION,
+ g_param_spec_string (
+ "description",
+ _("Description"),
+ _("The description of the web item"),
+ NULL,
+ flags));
+
+ g_object_class_install_property (gobject_class,
+ PROP_URI,
+ g_param_spec_string (
+ "uri",
+ _("URI"),
+ _("The URI of the web item"),
+ NULL,
+ flags));
+
+ g_object_class_install_property (gobject_class,
+ PROP_ICON,
+ g_param_spec_string (
+ "icon",
+ _("Icon"),
+ _("The icon of the web item"),
+ NULL,
+ flags));
+
+ g_object_class_install_property (gobject_class,
+ PROP_TOKEN,
+ g_param_spec_string (
+ "token",
+ _("Token"),
+ _("The token of the web item"),
+ NULL,
+ flags));
+}
+
+
+
+static void
+midori_web_item_init (MidoriWebItem* web_item)
+{
+ // Nothing to do here
+}
+
+static void
+midori_web_item_finalize (GObject* object)
+{
+ G_OBJECT_CLASS (midori_web_item_parent_class)->finalize (object);
+}
+
+static void
+midori_web_item_set_property (GObject* object,
+ guint prop_id,
+ const GValue* value,
+ GParamSpec* pspec)
+{
+ MidoriWebItem* web_item = MIDORI_WEB_ITEM (object);
+
+ switch (prop_id)
+ {
+ case PROP_NAME:
+ web_item->name = g_value_dup_string (value);
+ break;
+ case PROP_DESCRIPTION:
+ web_item->description = g_value_dup_string (value);
+ break;
+ case PROP_URI:
+ web_item->uri = g_value_dup_string (value);
+ break;
+ case PROP_ICON:
+ web_item->icon = g_value_dup_string (value);
+ break;
+ case PROP_TOKEN:
+ web_item->token = g_value_dup_string (value);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+midori_web_item_get_property (GObject* object,
+ guint prop_id,
+ GValue* value,
+ GParamSpec* pspec)
+{
+ MidoriWebItem* web_item = MIDORI_WEB_ITEM (object);
+
+ switch (prop_id)
+ {
+ case PROP_NAME:
+ g_value_set_string (value, web_item->name);
+ break;
+ case PROP_DESCRIPTION:
+ g_value_set_string (value, web_item->description);
+ break;
+ case PROP_URI:
+ g_value_set_string (value, web_item->uri);
+ break;
+ case PROP_ICON:
+ g_value_set_string (value, web_item->icon);
+ break;
+ case PROP_TOKEN:
+ g_value_set_string (value, web_item->token);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+/**
+ * midori_web_item_new:
+ *
+ * Creates a new #MidoriWebItem.
+ *
+ * Return value: a new #MidoriWebItem
+ **/
+MidoriWebItem*
+midori_web_item_new (void)
+{
+ MidoriWebItem* web_item = g_object_new (MIDORI_TYPE_WEB_ITEM,
+ NULL);
+
+ return web_item;
+}
+
+/**
+ * midori_web_item_get_name:
+ * @web_item: a #MidoriWebItem
+ *
+ * Retrieves the name of @web_item.
+ *
+ * Return value: the name of the web item
+ **/
+const gchar*
+midori_web_item_get_name (MidoriWebItem* web_item)
+{
+ g_return_val_if_fail (MIDORI_IS_WEB_ITEM (web_item), NULL);
+
+ return web_item->name;
+}
+
+/**
+ * midori_web_item_set_name:
+ * @web_item: a #MidoriWebItem
+ * @name: a string
+ *
+ * Sets the name of @web_item.
+ **/
+void
+midori_web_item_set_name (MidoriWebItem* web_item,
+ const gchar* name)
+{
+ g_return_if_fail (MIDORI_IS_WEB_ITEM (web_item));
+
+ katze_assign (web_item->name, g_strdup (name));
+ g_object_notify (G_OBJECT (web_item), "name");
+}
+
+/**
+ * midori_web_item_get_description:
+ * @web_item: a #MidoriWebItem
+ *
+ * Retrieves the description of @web_item.
+ *
+ * Return value: the description of the web item
+ **/
+const gchar*
+midori_web_item_get_description (MidoriWebItem* web_item)
+{
+ g_return_val_if_fail (MIDORI_IS_WEB_ITEM (web_item), NULL);
+
+ return web_item->description;
+}
+
+/**
+ * midori_web_item_set_description:
+ * @web_item: a #MidoriWebItem
+ * @description: a string
+ *
+ * Sets the description of @web_item.
+ **/
+void
+midori_web_item_set_description (MidoriWebItem* web_item,
+ const gchar* description)
+{
+ g_return_if_fail (MIDORI_IS_WEB_ITEM (web_item));
+
+ katze_assign (web_item->description, g_strdup (description));
+ g_object_notify (G_OBJECT (web_item), "description");
+}
+
+/**
+ * midori_web_item_get_uri:
+ * @web_item: a #MidoriWebItem
+ *
+ * Retrieves the URI of @web_item.
+ *
+ * Return value: the URI of the web item
+ **/
+const gchar*
+midori_web_item_get_uri (MidoriWebItem* web_item)
+{
+ g_return_val_if_fail (MIDORI_IS_WEB_ITEM (web_item), NULL);
+
+ return web_item->uri;
+}
+
+/**
+ * midori_web_item_set_uri:
+ * @web_item: a #MidoriWebItem
+ * @uri: a string
+ *
+ * Sets the URI of @web_item.
+ **/
+void
+midori_web_item_set_uri (MidoriWebItem* web_item,
+ const gchar* uri)
+{
+ g_return_if_fail (MIDORI_IS_WEB_ITEM (web_item));
+
+ katze_assign (web_item->uri, g_strdup (uri));
+ g_object_notify (G_OBJECT (web_item), "uri");
+}
+
+/**
+ * midori_web_item_get_icon:
+ * @web_item: a #MidoriWebItem
+ *
+ * Retrieves the icon of @web_item.
+ *
+ * Return value: the icon of the web item
+ **/
+const gchar*
+midori_web_item_get_icon (MidoriWebItem* web_item)
+{
+ g_return_val_if_fail (MIDORI_IS_WEB_ITEM (web_item), NULL);
+
+ return web_item->icon;
+}
+
+/**
+ * midori_web_item_set_icon:
+ * @web_item: a #MidoriWebItem
+ * @icon: a string
+ *
+ * Sets the icon of @web_item.
+ **/
+void
+midori_web_item_set_icon (MidoriWebItem* web_item,
+ const gchar* icon)
+{
+ g_return_if_fail (MIDORI_IS_WEB_ITEM (web_item));
+
+ katze_assign (web_item->icon, g_strdup (icon));
+ g_object_notify (G_OBJECT (web_item), "icon");
+}
+
+/**
+ * midori_web_item_get_token:
+ * @web_item: a #MidoriWebItem
+ *
+ * Retrieves the token of @web_item.
+ *
+ * Return value: the token of the web item
+ **/
+const gchar*
+midori_web_item_get_token (MidoriWebItem* web_item)
+{
+ g_return_val_if_fail (MIDORI_IS_WEB_ITEM (web_item), NULL);
+
+ return web_item->token;
+}
+
+/**
+ * midori_web_item_set_token:
+ * @web_item: a #MidoriWebItem
+ * @token: a string
+ *
+ * Sets the token of @web_item.
+ **/
+void
+midori_web_item_set_token (MidoriWebItem* web_item,
+ const gchar* token)
+{
+ g_return_if_fail (MIDORI_IS_WEB_ITEM (web_item));
+
+ katze_assign (web_item->token, g_strdup (token));
+ g_object_notify (G_OBJECT (web_item), "token");
+}
--- /dev/null
+/*
+ Copyright (C) 2008 Christian Dywan <christian@twotoasts.de>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ See the file COPYING for the full license text.
+*/
+
+#ifndef __MIDORI_WEB_ITEM_H__
+#define __MIDORI_WEB_ITEM_H__
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+#define MIDORI_TYPE_WEB_ITEM \
+ (midori_web_item_get_type ())
+#define MIDORI_WEB_ITEM(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), MIDORI_TYPE_WEB_ITEM, MidoriWebItem))
+#define MIDORI_WEB_ITEM_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST ((klass), MIDORI_TYPE_WEB_ITEM, MidoriWebItemClass))
+#define MIDORI_IS_WEB_ITEM(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MIDORI_TYPE_WEB_ITEM))
+#define MIDORI_IS_WEB_ITEM_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), MIDORI_TYPE_WEB_ITEM))
+#define MIDORI_WEB_ITEM_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS ((obj), MIDORI_TYPE_WEB_ITEM, MidoriWebItemClass))
+
+typedef struct _MidoriWebItem MidoriWebItem;
+typedef struct _MidoriWebItemClass MidoriWebItemClass;
+
+struct _MidoriWebItemClass
+{
+ GObjectClass parent_class;
+};
+
+GType
+midori_web_item_get_type (void);
+
+MidoriWebItem*
+midori_web_item_new (void);
+
+const gchar*
+midori_web_item_get_name (MidoriWebItem* web_item);
+
+void
+midori_web_item_set_name (MidoriWebItem* web_item,
+ const gchar* name);
+
+const gchar*
+midori_web_item_get_description (MidoriWebItem* web_item);
+
+void
+midori_web_item_set_description (MidoriWebItem* web_item,
+ const gchar* description);
+
+const gchar*
+midori_web_item_get_uri (MidoriWebItem* web_item);
+
+void
+midori_web_item_set_uri (MidoriWebItem* web_item,
+ const gchar* uri);
+
+const gchar*
+midori_web_item_get_icon (MidoriWebItem* web_item);
+
+void
+midori_web_item_set_icon (MidoriWebItem* web_item,
+ const gchar* icon);
+
+const gchar*
+midori_web_item_get_token (MidoriWebItem* web_item);
+
+void
+midori_web_item_set_token (MidoriWebItem* web_item,
+ const gchar* token);
+
+G_END_DECLS
+
+#endif /* __MIDORI_WEB_ITEM_H__ */
/*
- Copyright (C) 2007 Christian Dywan <christian@twotoasts.de>
+ Copyright (C) 2007-2008 Christian Dywan <christian@twotoasts.de>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
#include "search.h"
-#include "sokoke.h"
-#include <katze/katze.h>
+#include "midori-webitem.h"
-#include <stdio.h>
-#include <string.h>
+#include "sokoke.h"
GList* search_engines_new(void)
{
void search_engines_free(GList* searchEngines)
{
- g_list_foreach(searchEngines, (GFunc)search_engine_free, NULL);
+ g_list_foreach(searchEngines, (GFunc)g_object_unref, NULL);
g_list_free(searchEngines);
}
guint i;
for(i = 0; engines[i] != NULL; i++)
{
- SearchEngine* engine = search_engine_new();
- search_engine_set_short_name(engine, engines[i]);
- engine->description = g_key_file_get_string(keyFile, engines[i], "description", NULL);
- engine->url = g_key_file_get_string(keyFile, engines[i], "url", NULL);
- engine->inputEncoding = g_key_file_get_string(keyFile, engines[i], "input-encoding", NULL);
- engine->icon = g_key_file_get_string(keyFile, engines[i], "icon", NULL);
- engine->keyword = g_key_file_get_string(keyFile, engines[i], "keyword", NULL);
- *searchEngines = g_list_prepend(*searchEngines, engine);
+ MidoriWebItem* web_item = midori_web_item_new ();
+ guint j, n_properties;
+ GParamSpec** pspecs = g_object_class_list_properties (
+ G_OBJECT_GET_CLASS (web_item), &n_properties);
+ for (j = 0; j < n_properties; j++)
+ {
+ const gchar* property = g_param_spec_get_name (pspecs[j]);
+ gchar* value = g_key_file_get_string (keyFile, engines[i],
+ property, NULL);
+ g_object_set (web_item, property, value, NULL);
+ g_free (value);
+ }
+ *searchEngines = g_list_prepend(*searchEngines, web_item);
}
*searchEngines = g_list_reverse(*searchEngines);
g_strfreev(engines);
guint i;
for(i = 0; i < n; i++)
{
- SearchEngine* engine = (SearchEngine*)g_list_nth_data(searchEngines, i);
- const gchar* name = search_engine_get_short_name(engine);
- key_file_set_string(keyFile, name, "description", engine->description);
- key_file_set_string(keyFile, name, "url", engine->url);
- key_file_set_string(keyFile, name, "input-encoding", engine->inputEncoding);
- key_file_set_string(keyFile, name, "icon", engine->icon);
- key_file_set_string(keyFile, name, "keyword", engine->keyword);
+ MidoriWebItem* web_item = (MidoriWebItem*)g_list_nth_data(searchEngines, i);
+ const gchar* name = midori_web_item_get_name (web_item);
+ guint j, n_properties;
+ GParamSpec** pspecs = g_object_class_list_properties (
+ G_OBJECT_GET_CLASS (web_item), &n_properties);
+ for (j = 0; j < n_properties; j++)
+ {
+ const gchar* property = g_param_spec_get_name (pspecs[j]);
+ gchar* value;
+ g_object_get (web_item, property, &value, NULL);
+ key_file_set_string (keyFile, name, property, value);
+ g_free (value);
+ }
}
gboolean bSaved = sokoke_key_file_save_to_file(keyFile, filename, error);
g_key_file_free(keyFile);
return bSaved;
}
-
-SearchEngine* search_engine_new()
-{
- SearchEngine* engine = g_new0(SearchEngine, 1);
- engine->shortName = g_strdup("");
- return engine;
-}
-
-void search_engine_free(SearchEngine* engine)
-{
- g_return_if_fail(engine);
- g_free(engine->shortName);
- g_free(engine->description);
- g_free(engine->url);
- g_free(engine->inputEncoding);
- g_free(engine->icon);
- g_free(engine->keyword);
- g_free(engine);
-}
-
-SearchEngine* search_engine_copy(SearchEngine* engine)
-{
- g_return_val_if_fail(engine, NULL);
- SearchEngine* copy = search_engine_new();
- search_engine_set_short_name(copy, engine->shortName);
- search_engine_set_description(copy, engine->description);
- search_engine_set_url(copy, engine->url);
- search_engine_set_input_encoding(copy, engine->inputEncoding);
- search_engine_set_icon(copy, engine->icon);
- search_engine_set_keyword(copy, engine->keyword);
- return engine;
-}
-
-GType search_engine_get_type()
-{
- static GType type = 0;
- if(!type)
- type = g_pointer_type_register_static("search_engine");
- return type;
-}
-
-G_CONST_RETURN gchar* search_engine_get_short_name(SearchEngine* engine)
-{
- g_return_val_if_fail(engine, NULL);
- return engine->shortName;
-}
-
-G_CONST_RETURN gchar* search_engine_get_description(SearchEngine* engine)
-{
- g_return_val_if_fail(engine, NULL);
- return engine->description;
-}
-
-G_CONST_RETURN gchar* search_engine_get_url(SearchEngine* engine)
-{
- g_return_val_if_fail(engine, NULL);
- return engine->url;
-}
-
-G_CONST_RETURN gchar* search_engine_get_input_encoding(SearchEngine* engine)
-{
- g_return_val_if_fail(engine, NULL);
- return engine->inputEncoding;
-}
-
-G_CONST_RETURN gchar* search_engine_get_icon(SearchEngine* engine)
-{
- g_return_val_if_fail(engine, NULL);
- return engine->icon;
-}
-
-G_CONST_RETURN gchar* search_engine_get_keyword(SearchEngine* engine)
-{
- g_return_val_if_fail(engine, NULL);
- return engine->keyword;
-}
-
-void search_engine_set_short_name(SearchEngine* engine, const gchar* shortName)
-{
- g_return_if_fail(engine);
- g_return_if_fail(shortName);
- katze_assign(engine->shortName, g_strdup(shortName));
-}
-
-void search_engine_set_description(SearchEngine* engine, const gchar* description)
-{
- g_return_if_fail(engine);
- katze_assign(engine->description, g_strdup(description));
-}
-
-void search_engine_set_url(SearchEngine* engine, const gchar* url)
-{
- g_return_if_fail(engine);
- katze_assign(engine->url, g_strdup(url));
-}
-
-void search_engine_set_input_encoding(SearchEngine* engine, const gchar* inputEncoding)
-{
- g_return_if_fail(engine);
- katze_assign(engine->inputEncoding, g_strdup(inputEncoding));
-}
-
-void search_engine_set_icon(SearchEngine* engine, const gchar* icon)
-{
- g_return_if_fail(engine);
- katze_assign(engine->icon, g_strdup(icon));
-}
-
-void search_engine_set_keyword(SearchEngine* engine, const gchar* keyword)
-{
- g_return_if_fail(engine);
- katze_assign(engine->keyword, g_strdup(keyword));
-}
#include <glib.h>
#include <glib-object.h>
-// Note: This structure is entirely private.
-typedef struct
-{
- gchar* shortName;
- gchar* description;
- gchar* url;
- gchar* inputEncoding;
- gchar* icon;
- gchar* keyword;
-} SearchEngine;
-
GList*
search_engines_new(void);
gboolean
search_engines_to_file(GList*, const gchar*, GError**);
-SearchEngine*
-search_engine_new(void);
-
-void
-search_engine_free(SearchEngine*);
-
-SearchEngine*
-search_engine_copy(SearchEngine*);
-
-GType
-search_engine_get_type();
-
-#define G_TYPE_SEARCH_ENGINE search_engine_get_type()
-
-G_CONST_RETURN gchar*
-search_engine_get_short_name(SearchEngine*);
-
-G_CONST_RETURN gchar*
-search_engine_get_description(SearchEngine*);
-
-G_CONST_RETURN gchar*
-search_engine_get_url(SearchEngine*);
-
-G_CONST_RETURN gchar*
-search_engine_get_input_encoding(SearchEngine*);
-
-G_CONST_RETURN gchar*
-search_engine_get_icon(SearchEngine*);
-
-G_CONST_RETURN gchar*
-search_engine_get_keyword(SearchEngine*);
-
-void
-search_engine_set_short_name(SearchEngine*, const gchar*);
-
-void
-search_engine_set_description(SearchEngine*, const gchar*);
-
-void
-search_engine_set_url(SearchEngine*, const gchar*);
-
-void
-search_engine_set_input_encoding(SearchEngine*, const gchar*);
-
-void
-search_engine_set_icon(SearchEngine*, const gchar*);
-
-void
-search_engine_set_keyword(SearchEngine*, const gchar*);
-
#endif /* !__SEARCH_H__ */
#include "sokoke.h"
-#include "search.h"
+#include "midori-webitem.h"
#include "config.h"
#include "main.h"
guint i;
for (i = 0; i < n; i++)
{
- SearchEngine* search_engine = (SearchEngine*)g_list_nth_data (
+ MidoriWebItem* web_item = (MidoriWebItem*)g_list_nth_data (
searchEngines, i);
- if (!strcmp (search_engine_get_keyword (search_engine),
- parts[0]))
- search_uri = search_engine->url;
+ if (!strcmp (midori_web_item_get_token (web_item), parts[0]))
+ search_uri = midori_web_item_get_uri (web_item);
}
if (search_uri)
search = g_strdup_printf (search_uri, parts[1]);
/*
- Copyright (C) 2007 Christian Dywan <christian@twotoasts.de>
+ Copyright (C) 2007-2008 Christian Dywan <christian@twotoasts.de>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
#include "main.h"
#include "sokoke.h"
+#include "midori-webitem.h"
+
#include <string.h>
#include <gdk/gdkkeysyms.h>
#include <glib/gi18n.h>
// Reset in case the index is out of range
if(index >= n)
index = 0;
- SearchEngine* engine = (SearchEngine*)g_list_nth_data(searchEngines, index);
- GdkPixbuf* pixbuf = load_web_icon(search_engine_get_icon(engine)
- , GTK_ICON_SIZE_MENU, search);
+ MidoriWebItem* web_item = (MidoriWebItem*)g_list_nth_data (searchEngines, index);
+ GdkPixbuf* pixbuf = load_web_icon (midori_web_item_get_icon (web_item),
+ GTK_ICON_SIZE_MENU, search);
sexy_icon_entry_set_icon(SEXY_ICON_ENTRY(search)
, SEXY_ICON_ENTRY_PRIMARY, GTK_IMAGE(gtk_image_new_from_pixbuf(pixbuf)));
g_object_unref(pixbuf);
- sokoke_entry_set_default_text(GTK_ENTRY(search)
- , search_engine_get_short_name(engine));
+ sokoke_entry_set_default_text (GTK_ENTRY (search),
+ midori_web_item_get_name (web_item));
// config->searchEngine = index;
}
}
guint i;
for(i = 0; i < n; i++)
{
- SearchEngine* engine = (SearchEngine*)g_list_nth_data(searchEngines, i);
- menuitem = gtk_image_menu_item_new_with_label(
- search_engine_get_short_name(engine));
- GdkPixbuf* pixbuf = load_web_icon(search_engine_get_icon(engine)
- , GTK_ICON_SIZE_MENU, menuitem);
+ MidoriWebItem* web_item = (MidoriWebItem*)g_list_nth_data (searchEngines, i);
+ menuitem = gtk_image_menu_item_new_with_label (
+ midori_web_item_get_name (web_item));
+ GdkPixbuf* pixbuf = load_web_icon (midori_web_item_get_icon (web_item),
+ GTK_ICON_SIZE_MENU, menuitem);
GtkWidget* icon = gtk_image_new_from_pixbuf(pixbuf);
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menuitem), icon);
g_object_unref(pixbuf);
, GtkCellRenderer* renderer, GtkTreeModel* model, GtkTreeIter* iter
, GtkWidget* treeview)
{
- SearchEngine* searchEngine;
- gtk_tree_model_get(model, iter, ENGINES_COL_ENGINE, &searchEngine, -1);
+ MidoriWebItem* web_item;
+ gtk_tree_model_get(model, iter, ENGINES_COL_ENGINE, &web_item, -1);
// TODO: Would it be better to not do this on every redraw?
- const gchar* icon = search_engine_get_icon(searchEngine);
- if(icon)
+ const gchar* icon = midori_web_item_get_icon (web_item);
+ if (icon)
{
GdkPixbuf* pixbuf = load_web_icon(icon, GTK_ICON_SIZE_DND, treeview);
g_object_set(renderer, "pixbuf", pixbuf, NULL);
, GtkCellRenderer* renderer, GtkTreeModel* model, GtkTreeIter* iter
, GtkWidget* treeview)
{
- SearchEngine* searchEngine;
- gtk_tree_model_get(model, iter, ENGINES_COL_ENGINE, &searchEngine, -1);
- const gchar* name = search_engine_get_short_name(searchEngine);
- const gchar* description = search_engine_get_description(searchEngine);
+ MidoriWebItem* web_item;
+ gtk_tree_model_get(model, iter, ENGINES_COL_ENGINE, &web_item, -1);
+ const gchar* name = midori_web_item_get_name (web_item);
+ const gchar* description = midori_web_item_get_description (web_item);
gchar* markup = g_markup_printf_escaped("<b>%s</b>\n%s", name, description);
g_object_set(renderer, "markup", markup, NULL);
g_free(markup);
gtk_container_set_border_width(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), 5);
GtkSizeGroup* sizegroup = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
- SearchEngine* searchEngine;
+ MidoriWebItem* web_item;
GtkTreeModel* liststore;
GtkTreeIter iter;
if(newEngine)
{
- searchEngine = search_engine_new();
+ web_item = midori_web_item_new ();
gtk_dialog_set_response_sensitive(GTK_DIALOG(dialog)
, GTK_RESPONSE_ACCEPT, FALSE);
}
{
GtkTreeSelection* selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(webSearch->treeview));
gtk_tree_selection_get_selected(selection, &liststore, &iter);
- gtk_tree_model_get(liststore, &iter, ENGINES_COL_ENGINE, &searchEngine, -1);
+ gtk_tree_model_get(liststore, &iter, ENGINES_COL_ENGINE, &web_item, -1);
}
GtkWidget* hbox = gtk_hbox_new(FALSE, 8);
gtk_entry_set_activates_default(GTK_ENTRY(entry_shortName), TRUE);
if(!newEngine)
gtk_entry_set_text(GTK_ENTRY(entry_shortName)
- , search_engine_get_short_name(searchEngine));
+ , STR_NON_NULL (midori_web_item_get_name (web_item)));
gtk_box_pack_start(GTK_BOX(hbox), entry_shortName, TRUE, TRUE, 0);
gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), hbox);
gtk_widget_show_all(hbox);
gtk_entry_set_activates_default(GTK_ENTRY(entry_description), TRUE);
if(!newEngine)
gtk_entry_set_text(GTK_ENTRY(entry_description)
- , STR_NON_NULL(search_engine_get_description(searchEngine)));
+ , STR_NON_NULL (midori_web_item_get_description (web_item)));
gtk_box_pack_start(GTK_BOX(hbox), entry_description, TRUE, TRUE, 0);
gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), hbox);
gtk_widget_show_all(hbox);
gtk_entry_set_activates_default(GTK_ENTRY(entry_url), TRUE);
if(!newEngine)
gtk_entry_set_text(GTK_ENTRY(entry_url)
- , STR_NON_NULL(search_engine_get_url(searchEngine)));
+ , STR_NON_NULL (midori_web_item_get_uri (web_item)));
gtk_box_pack_start(GTK_BOX(hbox), entry_url, TRUE, TRUE, 0);
gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), hbox);
gtk_widget_show_all(hbox);
gtk_entry_set_activates_default(GTK_ENTRY(entry_icon), TRUE);
if(!newEngine)
gtk_entry_set_text(GTK_ENTRY(entry_icon)
- , STR_NON_NULL(search_engine_get_icon(searchEngine)));
+ , STR_NON_NULL (midori_web_item_get_icon (web_item)));
gtk_box_pack_start(GTK_BOX(hbox), entry_icon, TRUE, TRUE, 0);
gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), hbox);
gtk_widget_show_all(hbox);
gtk_entry_set_activates_default(GTK_ENTRY(entry_keyword), TRUE);
if(!newEngine)
gtk_entry_set_text(GTK_ENTRY(entry_keyword)
- , STR_NON_NULL(search_engine_get_keyword(searchEngine)));
+ , STR_NON_NULL(midori_web_item_get_token (web_item)));
gtk_box_pack_start(GTK_BOX(hbox), entry_keyword, TRUE, TRUE, 0);
gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), hbox);
gtk_widget_show_all(hbox);
gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_ACCEPT);
if(gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT)
{
- search_engine_set_short_name(searchEngine
+ midori_web_item_set_name (web_item
, gtk_entry_get_text(GTK_ENTRY(entry_shortName)));
- search_engine_set_description(searchEngine
+ midori_web_item_set_description (web_item
, gtk_entry_get_text(GTK_ENTRY(entry_description)));
- search_engine_set_url(searchEngine
+ midori_web_item_set_uri (web_item
, gtk_entry_get_text(GTK_ENTRY(entry_url)));
/*search_engine_set_input_encoding(searchEngine
, gtk_entry_get_text(GTK_ENTRY(entry_inputEncoding)));*/
- search_engine_set_icon(searchEngine
+ midori_web_item_set_icon (web_item
, gtk_entry_get_text(GTK_ENTRY(entry_icon)));
- search_engine_set_keyword(searchEngine
+ midori_web_item_set_token (web_item
, gtk_entry_get_text(GTK_ENTRY(entry_keyword)));
if(newEngine)
{
- searchEngines = g_list_append(searchEngines, searchEngine);
+ searchEngines = g_list_append(searchEngines, web_item);
liststore = gtk_tree_view_get_model(GTK_TREE_VIEW(webSearch->treeview));
gtk_list_store_append(GTK_LIST_STORE(liststore), &iter);
}
gtk_list_store_set(GTK_LIST_STORE(liststore), &iter
- , ENGINES_COL_ENGINE, searchEngine, -1);
+ , ENGINES_COL_ENGINE, web_item, -1);
webSearch_toggle_edit_buttons(TRUE, webSearch);
}
gtk_widget_destroy(dialog);
GtkTreeModel* liststore;
GtkTreeIter iter;
gtk_tree_selection_get_selected(selection, &liststore, &iter);
- SearchEngine* searchEngine;
- gtk_tree_model_get(liststore, &iter, ENGINES_COL_ENGINE, &searchEngine, -1);
+ MidoriWebItem* web_item;
+ gtk_tree_model_get(liststore, &iter, ENGINES_COL_ENGINE, &web_item, -1);
gtk_list_store_remove(GTK_LIST_STORE(liststore), &iter);
- search_engine_free(searchEngine);
- searchEngines = g_list_remove(searchEngines, searchEngine);
+ g_object_unref (web_item);
+ searchEngines = g_list_remove (searchEngines, web_item);
//update_searchEngine(config->searchEngine, webSearch->browser);
webSearch_toggle_edit_buttons(g_list_nth(searchEngines, 0) != NULL, webSearch);
// FIXME: we want to allow undo of some kind
GtkTreeViewColumn* column;
GtkCellRenderer* renderer_text; GtkCellRenderer* renderer_pixbuf;
GtkListStore* liststore = gtk_list_store_new(ENGINES_COL_N
- , G_TYPE_SEARCH_ENGINE);
+ , MIDORI_TYPE_WEB_ITEM);
GtkWidget* treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(liststore));
gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(treeview), FALSE);
column = gtk_tree_view_column_new();
guint i;
for(i = 0; i < n; i++)
{
- SearchEngine* searchEngine = (SearchEngine*)g_list_nth_data(searchEngines, i);
+ MidoriWebItem* web_item = (MidoriWebItem*)g_list_nth_data (searchEngines, i);
gtk_list_store_insert_with_values(GTK_LIST_STORE(liststore), NULL, i
- , ENGINES_COL_ENGINE, searchEngine, -1);
+ , ENGINES_COL_ENGINE, web_item, -1);
}
g_object_unref(liststore);
CWebSearch* webSearch = g_new0(CWebSearch, 1);
void on_webSearch_activate(GtkWidget* widget, MidoriBrowser* browser)
{
const gchar* keywords = gtk_entry_get_text(GTK_ENTRY(widget));
- gchar* url;
- SearchEngine* searchEngine = (SearchEngine*)g_list_nth_data(searchEngines, 0/*config->searchEngine*/);
- if(searchEngine)
- url = searchEngine->url;
+ const gchar* url;
+ MidoriWebItem* web_item = (MidoriWebItem*)g_list_nth_data (searchEngines, 0/*config->searchEngine*/);
+ if (web_item)
+ url = midori_web_item_get_uri (web_item);
else // The location search is our fallback
url = "";//config->locationSearch;
gchar* search;