[kazehakase-svn] [3144] * po/POTFILES.in: added module/embed/*/Makefile.am.

Zurück zum Archiv-Index

svnno****@sourc***** svnno****@sourc*****
Thu Apr 5 11:35:11 JST 2007


Revision: 3144
          http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=kazehakase&view=rev&rev=3144
Author:   kous
Date:     2007-04-05 11:35:10 +0900 (Thu, 05 Apr 2007)

Log Message:
-----------
* po/POTFILES.in: added module/embed/*/Makefile.am.
* src/prefs_ui/prefs_browser.c: supported gettext.
* src/kz-embed.c (kz_embed_engine_ids): loaded all engines if
  not loaded.
* src/kz-module.[ch] (kz_module_load_modules_unique): added.
* module/embed/*.am (ENGINE_ID_FOR_GETTEXT): added.
* src/prefs_ui/prefs_browser.[ch], src/prefs_ui/Makefile.am,
  src/kz-prefs-win.c: made layout engine selectable.
* src/prefs_ui/prefs_history.c (set_search_engine): added NULL check.
* src/kz-window.c (kz_window_create_embed): Use Global/layout_engine.
* src/kz-embed.[ch] (kz_embed_engine_ids): added.

Modified Paths:
--------------
    kazehakase/trunk/ChangeLog
    kazehakase/trunk/module/embed/gecko/Makefile.am
    kazehakase/trunk/module/embed/gtk-webcore/Makefile.am
    kazehakase/trunk/module/embed/ie/Makefile.am
    kazehakase/trunk/po/POTFILES.in
    kazehakase/trunk/src/kz-embed.c
    kazehakase/trunk/src/kz-module.c
    kazehakase/trunk/src/kz-module.h
    kazehakase/trunk/src/prefs_ui/prefs_browser.c

Modified: kazehakase/trunk/ChangeLog
===================================================================
--- kazehakase/trunk/ChangeLog	2007-04-05 01:52:20 UTC (rev 3143)
+++ kazehakase/trunk/ChangeLog	2007-04-05 02:35:10 UTC (rev 3144)
@@ -1,5 +1,16 @@
 2007-04-05  Kouhei Sutou  <kou****@cozmi*****>
 
+	* po/POTFILES.in: added module/embed/*/Makefile.am.
+
+	* src/prefs_ui/prefs_browser.c: supported gettext.
+
+	* src/kz-embed.c (kz_embed_engine_ids): loaded all engines if
+	not loaded.
+
+	* src/kz-module.[ch] (kz_module_load_modules_unique): added.
+
+	* module/embed/*.am (ENGINE_ID_FOR_GETTEXT): added.
+
 	* src/prefs_ui/prefs_browser.[ch], src/prefs_ui/Makefile.am,
 	src/kz-prefs-win.c: made layout engine selectable.
 

Modified: kazehakase/trunk/module/embed/gecko/Makefile.am
===================================================================
--- kazehakase/trunk/module/embed/gecko/Makefile.am	2007-04-05 01:52:20 UTC (rev 3143)
+++ kazehakase/trunk/module/embed/gecko/Makefile.am	2007-04-05 02:35:10 UTC (rev 3144)
@@ -1,5 +1,6 @@
 CLEANFILES = *~ *.bak
 
+ENGINE_ID_FOR_GETTEXT = N_("gecko")
 embed_LTLIBRARIES = gecko.la
 
 INCLUDES = \

Modified: kazehakase/trunk/module/embed/gtk-webcore/Makefile.am
===================================================================
--- kazehakase/trunk/module/embed/gtk-webcore/Makefile.am	2007-04-05 01:52:20 UTC (rev 3143)
+++ kazehakase/trunk/module/embed/gtk-webcore/Makefile.am	2007-04-05 02:35:10 UTC (rev 3144)
@@ -1,6 +1,7 @@
 # -*- Mode: Makefile; tab-width: 8; indent-tabs-mode: t; -*-
 CLEANFILES = *~ *.bak
 
+ENGINE_ID_FOR_GETTEXT = N_("gtk-webcore")
 embed_LTLIBRARIES = gtk-webcore.la
 
 INCLUDES =						\

Modified: kazehakase/trunk/module/embed/ie/Makefile.am
===================================================================
--- kazehakase/trunk/module/embed/ie/Makefile.am	2007-04-05 01:52:20 UTC (rev 3143)
+++ kazehakase/trunk/module/embed/ie/Makefile.am	2007-04-05 02:35:10 UTC (rev 3144)
@@ -1,6 +1,7 @@
 # -*- Mode: Makefile; tab-width: 8; indent-tabs-mode: t; -*-
 CLEANFILES = *~ *.bak
 
+ENGINE_ID_FOR_GETTEXT = N_("ie")
 embed_LTLIBRARIES = ie.la
 
 INCLUDES =						\

Modified: kazehakase/trunk/po/POTFILES.in
===================================================================
--- kazehakase/trunk/po/POTFILES.in	2007-04-05 01:52:20 UTC (rev 3143)
+++ kazehakase/trunk/po/POTFILES.in	2007-04-05 02:35:10 UTC (rev 3144)
@@ -24,10 +24,13 @@
 src/dialogs/kz-about-dialog.c
 src/dialogs/kz-print-dialog.c
 src/dialogs/kz-copy-format-dialog.c
+module/embed/gecko/Makefile.am
 module/embed/gecko/GtkNSSDialogs.cpp
 module/embed/gecko/GtkPromptService.cpp
 module/embed/gecko/kz-gecko-embed.cpp
 module/embed/gecko/kz-mozfilepicker.cpp
+module/embed/gtk-webcore/Makefile.am
+module/embed/ie/Makefile.am
 src/sidebar/kz-downloader-sidebar.c
 src/sidebar/kz-tabtree.c
 src/sidebar/kz-thumbnails-sidebar.c

Modified: kazehakase/trunk/src/kz-embed.c
===================================================================
--- kazehakase/trunk/src/kz-embed.c	2007-04-05 01:52:20 UTC (rev 3143)
+++ kazehakase/trunk/src/kz-embed.c	2007-04-05 02:35:10 UTC (rev 3144)
@@ -24,6 +24,7 @@
 #include "kz-marshalers.h"
 
 static GList *embeds = NULL;
+static gboolean loaded = FALSE;
 
 static const gchar *
 _kz_embed_module_dir (void)
@@ -38,10 +39,22 @@
 void
 kz_embed_load (const gchar *base_dir)
 {
+	GList *loaded_modules;
+	gboolean local_loaded = loaded;
+
+	loaded = TRUE;
+
 	if (!base_dir)
 		base_dir = _kz_embed_module_dir();
 
-	embeds = g_list_concat(kz_module_load_modules(base_dir), embeds);
+	if (local_loaded)
+		loaded_modules = kz_module_load_modules(base_dir);
+	else
+		loaded_modules = kz_module_load_modules_unique(base_dir, embeds);
+
+#warning FIXME: workaround for kz-gecko-embed.cpp.
+	g_list_foreach(loaded_modules, (GFunc)g_type_module_use, NULL);
+	embeds = g_list_concat(loaded_modules, embeds);
 }
 
 void
@@ -82,7 +95,7 @@
 	GList *node;
 	GList *result = NULL;
 
-	if (!embeds)
+	if (!loaded)
 		kz_embed_load(NULL);
 
 	for (node = embeds; node; node = g_list_next(node))

Modified: kazehakase/trunk/src/kz-module.c
===================================================================
--- kazehakase/trunk/src/kz-module.c	2007-04-05 01:52:20 UTC (rev 3143)
+++ kazehakase/trunk/src/kz-module.c	2007-04-05 02:35:10 UTC (rev 3144)
@@ -313,26 +313,41 @@
 GList *
 kz_module_load_modules (const gchar *base_dir)
 {
+	return kz_module_load_modules_unique(base_dir, NULL);
+}
+
+GList *
+kz_module_load_modules_unique (const gchar *base_dir, GList *exist_modules)
+{
 	GDir *dir;
 	GList *modules = NULL;
+	const gchar *entry;
 
 	dir = g_dir_open(base_dir, 0, NULL);
-	if (dir) {
-		const gchar *entry;
+	if (!dir)
+		return modules;
 
-		while ((entry = g_dir_read_name(dir))) {
-			KzModule *module;
-			module = kz_module_load_module(base_dir, entry);
-			if (module)
+	while ((entry = g_dir_read_name(dir))) {
+		KzModule *module;
+
+		module = kz_module_load_module(base_dir, entry);
+		if (module)
+		{
+			GTypeModule *g_module;
+
+			g_module = G_TYPE_MODULE(module);
+			if (kz_module_find(exist_modules, g_module->name))
+				kz_module_unload(module);
+			else
 				modules = g_list_prepend(modules, module);
 		}
-
-		g_dir_close(dir);
 	}
+	g_dir_close(dir);
 
 	return modules;
 }
 
+
 static gboolean
 _kz_module_match_name (const gchar *mod_path, const gchar *name)
 {

Modified: kazehakase/trunk/src/kz-module.h
===================================================================
--- kazehakase/trunk/src/kz-module.h	2007-04-05 01:52:20 UTC (rev 3143)
+++ kazehakase/trunk/src/kz-module.h	2007-04-05 02:35:10 UTC (rev 3144)
@@ -51,6 +51,8 @@
 KzModule *kz_module_load_module		(const gchar	*base_dir,
 					 const gchar	*name);
 GList    *kz_module_load_modules	(const gchar    *base_dir);
+GList    *kz_module_load_modules_unique	(const gchar    *base_dir,
+					 GList		*modules);
 
 KzModule *kz_module_find		(GList          *modules,
 					 const gchar    *name);

Modified: kazehakase/trunk/src/prefs_ui/prefs_browser.c
===================================================================
--- kazehakase/trunk/src/prefs_ui/prefs_browser.c	2007-04-05 01:52:20 UTC (rev 3143)
+++ kazehakase/trunk/src/prefs_ui/prefs_browser.c	2007-04-05 02:35:10 UTC (rev 3144)
@@ -28,7 +28,13 @@
 
 #define DATA_KEY "KzPrefsBrowser::info"
 
+enum
+{
+	ID_COL,
+	TEXT_COL
+};
 
+
 static GtkWidget     *prefs_browser_create      (void);
 static void           prefs_browser_response    (GtkWidget *widget,
 						 gint       response);
@@ -73,15 +79,28 @@
 	gint i = 0, active = 0;
 	GList *node;
 	GList *layout_engine_ids = NULL;
+	GtkListStore *store;
+	GtkTreeIter iter;
 
 	layout_engine_name = KZ_CONF_GET_STR("Browser", "layout_engine");
-	gtk_combo_box_append_text(GTK_COMBO_BOX(combo), _("None"));
 
+	store = GTK_LIST_STORE(gtk_combo_box_get_model(combo));
+	gtk_list_store_append(store, &iter);
+	gtk_list_store_set(store, &iter,
+			   ID_COL, NULL,
+			   TEXT_COL, _("None"),
+			   -1);
+
 	layout_engine_ids = kz_embed_engine_ids();
 	for (node = layout_engine_ids; node; node = g_list_next(node))
 	{
 		gchar *engine_id = node->data;
-		gtk_combo_box_append_text(combo, engine_id);
+
+		gtk_list_store_append(store, &iter);
+		gtk_list_store_set(store, &iter,
+				   ID_COL, engine_id,
+				   TEXT_COL, _(engine_id),
+				   -1);
 		i++;
 		if (layout_engine_name &&
 		    strcmp(engine_id, layout_engine_name) == 0)
@@ -96,27 +115,25 @@
 	gtk_combo_box_set_active(combo, active);
 }
 
-static GtkWidget *
-prefs_browser_create (void)
+static void
+create_title (KzPrefsBrowser *prefsui)
 {
-	KzPrefsBrowser *prefsui = g_new0(KzPrefsBrowser, 1);
-	GtkWidget *main_vbox, *vbox, *hbox, *frame;
-	GtkWidget *label, *combo;
+	GtkWidget *label;
 
-	main_vbox = gtk_vbox_new(FALSE, 0);
-	prefsui->main_vbox = main_vbox;
-	g_object_set_data_full(G_OBJECT(main_vbox), DATA_KEY,
-			       prefsui, prefs_browser_destroy);
-
 	label = kz_prefs_ui_utils_create_title(_("Browser"));
-	gtk_box_pack_start(GTK_BOX(main_vbox), label,
-			   FALSE, FALSE, 0);
+	gtk_box_pack_start(GTK_BOX(prefsui->main_vbox), label, FALSE, FALSE, 0);
 	gtk_widget_show(label);
+}
 
+static GtkWidget *
+create_layout_engine_area (KzPrefsBrowser *prefsui)
+{
+	GtkWidget *frame, *vbox;
+
 	frame = gtk_frame_new(_("Layout engine"));
 	gtk_frame_set_label_align(GTK_FRAME(frame), 0.03, 0.5);
 	gtk_container_set_border_width(GTK_CONTAINER(frame), 5);
-	gtk_box_pack_start(GTK_BOX(main_vbox), frame, FALSE, FALSE, 2);
+	gtk_box_pack_start(GTK_BOX(prefsui->main_vbox), frame, FALSE, FALSE, 2);
 	gtk_widget_show(frame);
 
 	vbox = gtk_vbox_new(FALSE, 0);
@@ -124,21 +141,59 @@
 	gtk_container_add(GTK_CONTAINER(frame), vbox);
 	gtk_widget_show(vbox);
 
+	return vbox;
+}
+
+static void
+create_layout_engine_selector (KzPrefsBrowser *prefsui,
+			       GtkWidget *layout_engine_area)
+{
+	GtkWidget *hbox, *label, *combo;
+	GtkCellRenderer *cell;
+	GtkListStore *store;
+
 	hbox = gtk_hbox_new(FALSE, 0);
 	gtk_container_set_border_width(GTK_CONTAINER(hbox), 4);
-	gtk_container_add(GTK_CONTAINER(vbox), hbox);
+	gtk_container_add(GTK_CONTAINER(layout_engine_area), hbox);
 	gtk_widget_show(hbox);
 	label = gtk_label_new_with_mnemonic(_("Layout engine name"));
 	gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
 	gtk_widget_show(label);
 
-	prefsui->layout_engine = combo = gtk_combo_box_new_text();
+
+	store = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_STRING);
+	combo = gtk_combo_box_new_with_model(GTK_TREE_MODEL(store));
+	prefsui->layout_engine = combo;
+	g_object_unref(store);
+
+	cell = gtk_cell_renderer_text_new();
+	gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(combo), cell, TRUE);
+	gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(combo), cell,
+				       "text", TEXT_COL,
+				       NULL);
+
 	set_layout_engine(GTK_COMBO_BOX(combo));
 	gtk_widget_show(combo);
 	gtk_box_pack_start (GTK_BOX(hbox), combo, TRUE, TRUE, 0);
-	g_signal_connect(combo, "changed",
-			 G_CALLBACK(cb_changed), prefsui);
+	g_signal_connect(combo, "changed", G_CALLBACK(cb_changed), prefsui);
+}
 
+
+static GtkWidget *
+prefs_browser_create (void)
+{
+	KzPrefsBrowser *prefsui = g_new0(KzPrefsBrowser, 1);
+	GtkWidget *main_vbox, *layout_engine_area;
+
+	main_vbox = gtk_vbox_new(FALSE, 0);
+	prefsui->main_vbox = main_vbox;
+	g_object_set_data_full(G_OBJECT(main_vbox), DATA_KEY,
+			       prefsui, prefs_browser_destroy);
+
+	create_title(prefsui);
+	layout_engine_area = create_layout_engine_area(prefsui);
+	create_layout_engine_selector(prefsui, layout_engine_area);
+
 	prefsui->changed = FALSE;
 
 	return main_vbox;
@@ -167,8 +222,15 @@
 		}
 		else
 		{
-			gchar *layout_engine;
-			layout_engine = gtk_combo_box_get_active_text(combo);
+			gchar *layout_engine = NULL;
+			GtkTreeIter iter;
+			GtkTreeModel *model;
+
+			model = gtk_combo_box_get_model(combo);
+			gtk_combo_box_get_active_iter(combo, &iter);
+			gtk_tree_model_get(model, &iter,
+					   ID_COL, &layout_engine,
+					   -1);
 			if (layout_engine)
 			{
 				KZ_CONF_SET_STR("Browser", "layout_engine",




More information about the Kazehakase-cvs mailing list
Zurück zum Archiv-Index