[Goodies-commits] r7698 - in xfce4-dict/trunk: . lib

Enrico Troeger enrico at xfce.org
Wed Jul 8 20:32:20 CEST 2009


Author: enrico
Date: 2009-07-08 18:32:20 +0000 (Wed, 08 Jul 2009)
New Revision: 7698

Modified:
   xfce4-dict/trunk/ChangeLog
   xfce4-dict/trunk/lib/common.h
   xfce4-dict/trunk/lib/dictd.c
   xfce4-dict/trunk/lib/gui.c
   xfce4-dict/trunk/lib/spell.c
Log:
Rework the results display for failed dictionary searches.
Show headings for the various search methods.

Modified: xfce4-dict/trunk/ChangeLog
===================================================================
--- xfce4-dict/trunk/ChangeLog	2009-07-08 18:31:50 UTC (rev 7697)
+++ xfce4-dict/trunk/ChangeLog	2009-07-08 18:32:20 UTC (rev 7698)
@@ -2,6 +2,9 @@
 
  * lib/common.c, lib/common.h, lib/gui.c, lib/prefs.c:
    Allow setting an empty web search URL to disable the feature.
+ * lib/common.h, lib/dictd.c, lib/gui.c, lib/spell.c:
+   Rework the results display for failed dictionary searches.
+   Show headings for the various search methods.
 
 
 2009-05-29  Enrico Tröger  <enrico(dot)troeger(at)uvena(dot)de>

Modified: xfce4-dict/trunk/lib/common.h
===================================================================
--- xfce4-dict/trunk/lib/common.h	2009-07-08 18:31:50 UTC (rev 7697)
+++ xfce4-dict/trunk/lib/common.h	2009-07-08 18:32:20 UTC (rev 7698)
@@ -55,6 +55,7 @@
 	SERVER_NOT_READY
 };
 
+#define TAG_HEADING "heading"
 #define TAG_ERROR "error"
 #define TAG_SUCCESS "success"
 #define TAG_LINK "link"

Modified: xfce4-dict/trunk/lib/dictd.c
===================================================================
--- xfce4-dict/trunk/lib/dictd.c	2009-07-08 18:31:50 UTC (rev 7697)
+++ xfce4-dict/trunk/lib/dictd.c	2009-07-08 18:32:20 UTC (rev 7698)
@@ -313,7 +313,7 @@
 
 	if (g_strv_length(dict_parts) > 3)
 	{	gtk_text_buffer_insert_with_tags_by_name(dd->main_textbuffer, &dd->textiter,
-			g_strstrip(dict_parts[3]), -1, "bold", NULL);
+			g_strstrip(dict_parts[3]), -1, TAG_BOLD, NULL);
 
 		gtk_text_buffer_insert(dd->main_textbuffer, &dd->textiter, " (", 2);
 		gtk_text_buffer_insert(dd->main_textbuffer, &dd->textiter,
@@ -410,6 +410,9 @@
 
 	if (dd->query_status == NOTHING_FOUND)
 	{
+		gtk_text_buffer_insert(dd->main_textbuffer, &dd->textiter, "\n", 1);
+		gtk_text_buffer_insert_with_tags_by_name(dd->main_textbuffer, &dd->textiter,
+			_("Dictionary Results:"), -1, TAG_HEADING, NULL);
 
 		gtk_text_buffer_insert(dd->main_textbuffer, &dd->textiter, "\n", 1);
 		tmp = g_strdup_printf(_("No matches could be found for \"%s\"."), dd->searched_word);
@@ -430,9 +433,15 @@
 				 * is the name of the preferred web search engine */
 				_("Search \"%s\" using \"%s\""),
 				dd->searched_word, label);
+
 			gtk_text_buffer_insert(dd->main_textbuffer, &dd->textiter, "\n\n", 2);
 			gtk_text_buffer_insert_with_tags_by_name(dd->main_textbuffer, &dd->textiter,
+				_("Web Search:"), -1, TAG_HEADING, NULL);
+
+			gtk_text_buffer_insert(dd->main_textbuffer, &dd->textiter, "\n", 1);
+			gtk_text_buffer_insert_with_tags_by_name(dd->main_textbuffer, &dd->textiter,
 				text, -1, TAG_LINK, NULL);
+			//~ gtk_text_buffer_insert(dd->main_textbuffer, &dd->textiter, "\n", 1);
 			/*dict_gui_textview_apply_tag_to_word(dd->main_textbuffer, dd->searched_word,
 				&dd->textiter, TAG_BOLD, NULL);*/
 			g_free(text);

Modified: xfce4-dict/trunk/lib/gui.c
===================================================================
--- xfce4-dict/trunk/lib/gui.c	2009-07-08 18:31:50 UTC (rev 7697)
+++ xfce4-dict/trunk/lib/gui.c	2009-07-08 18:32:20 UTC (rev 7698)
@@ -736,10 +736,14 @@
 	gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(dd->main_textview), GTK_WRAP_WORD);
 	dd->main_textbuffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(dd->main_textview));
 	gtk_text_buffer_create_tag(dd->main_textbuffer,
+			TAG_HEADING,
+			"weight", PANGO_WEIGHT_BOLD,
+			"pixels-below-lines", 5, NULL);
+	gtk_text_buffer_create_tag(dd->main_textbuffer,
 			TAG_BOLD,
 			"weight", PANGO_WEIGHT_BOLD,
+			"indent", 10,
 			"style", PANGO_STYLE_ITALIC,
-			"indent", 10,
 			"pixels-below-lines", 5, NULL);
 	dd->error_tag = gtk_text_buffer_create_tag(dd->main_textbuffer,
 			TAG_ERROR,

Modified: xfce4-dict/trunk/lib/spell.c
===================================================================
--- xfce4-dict/trunk/lib/spell.c	2009-07-08 18:31:50 UTC (rev 7697)
+++ xfce4-dict/trunk/lib/spell.c	2009-07-08 18:32:20 UTC (rev 7698)
@@ -44,6 +44,7 @@
 	DictData *dd;
 	gchar *word;
 	gboolean quiet;
+	gboolean header_printed;
 } iodata;
 
 
@@ -65,6 +66,19 @@
 }
 
 
+static void print_header(iodata *iod)
+{
+	if (! iod->header_printed)
+	{
+		gtk_text_buffer_insert(iod->dd->main_textbuffer, &iod->dd->textiter, "\n", 1);
+		gtk_text_buffer_insert_with_tags_by_name(iod->dd->main_textbuffer, &iod->dd->textiter,
+			_("Spell Checker Results:"), -1, TAG_HEADING, NULL);
+
+		iod->header_printed = TRUE;
+	}
+}
+
+
 static gboolean iofunc_read(GIOChannel *ioc, GIOCondition cond, gpointer data)
 {
 	iodata *iod = data;
@@ -75,21 +89,23 @@
 
 		while (g_io_channel_read_line(ioc, &msg, NULL, NULL, NULL) && msg != NULL)
 		{
+			print_header(iod);
+
 			if (msg[0] == '&')
 			{	/* & cmd 17 7: ... */
 				gint count;
 				tmp = strchr(msg + 2, ' ') + 1;
 				count = atoi(tmp);
+
 				if (! iod->quiet)
 					dict_gui_status_add(dd, ngettext("%d suggestion found.",
 													 "%d suggestions found.",
 													 count), count);
-
-				gtk_text_buffer_insert(dd->main_textbuffer, &dd->textiter, "\n", 1);
+				gtk_text_buffer_insert(dd->main_textbuffer, &dd->textiter, "\n\n", 2);
 				tmp = g_strdup_printf(_("Suggestions for \"%s\" (%s):"),
 					iod->word, dd->spell_dictionary);
 				gtk_text_buffer_insert_with_tags_by_name(
-					dd->main_textbuffer, &dd->textiter, tmp, -1, "bold", NULL);
+					dd->main_textbuffer, &dd->textiter, tmp, -1, TAG_BOLD, NULL);
 				dict_gui_textview_apply_tag_to_word(dd->main_textbuffer, iod->word, &dd->textiter,
 					TAG_ERROR, TAG_BOLD, NULL);
 				g_free(tmp);
@@ -97,7 +113,6 @@
 
 				tmp = strchr(msg, ':') + 2;
 				gtk_text_buffer_insert(dd->main_textbuffer, &dd->textiter, g_strchomp(tmp), -1);
-				gtk_text_buffer_insert(dd->main_textbuffer, &dd->textiter, "\n", 1);
 			}
 			else if (msg[0] == '*' && ! iod->quiet)
 			{
@@ -108,7 +123,6 @@
 				dict_gui_textview_apply_tag_to_word(dd->main_textbuffer, iod->word, &dd->textiter,
 					TAG_SUCCESS, TAG_BOLD, NULL);
 				g_free(tmp);
-				gtk_text_buffer_insert(dd->main_textbuffer, &dd->textiter, "\n", 1);
 			}
 			else if (msg[0] == '#' && ! iod->quiet)
 			{
@@ -119,7 +133,6 @@
 				dict_gui_textview_apply_tag_to_word(dd->main_textbuffer, iod->word, &dd->textiter,
 					TAG_ERROR, TAG_BOLD, NULL);
 				g_free(tmp);
-				gtk_text_buffer_insert(dd->main_textbuffer, &dd->textiter, "\n", 1);
 			}
 			g_free(msg);
 		}
@@ -177,6 +190,7 @@
 	guint	 i;
 	gsize	 tts_len;
 	gchar  **tts; /* text to search */
+	gboolean header_printed = FALSE;
 	iodata	*iod;
 
 	if (! NZV(dd->spell_bin))
@@ -211,14 +225,16 @@
 				&stdin_fd, &stdout_fd, &stderr_fd, &error))
 		{
 			iod = g_new(iodata, 1);
-			/* if we have more than search term, show them all even if quiet mode was requested */
+			/* if we have more than one search term, show them all even if in quiet mode */
 			iod->quiet = quiet && (tts_len == 1);
 			iod->dd = dd;
 			iod->word = g_strdup(tts[i]);
+			iod->header_printed = header_printed;
 
 			set_up_io_channel(stdin_fd, G_IO_OUT, iofunc_write, g_strdup(tts[i]));
 			set_up_io_channel(stdout_fd, G_IO_IN|G_IO_PRI|G_IO_HUP|G_IO_ERR|G_IO_NVAL, iofunc_read, iod);
 			set_up_io_channel(stderr_fd, G_IO_IN|G_IO_PRI|G_IO_HUP|G_IO_ERR|G_IO_NVAL, iofunc_read_err, dd);
+			header_printed = TRUE;
 			if (! quiet)
 				dict_gui_status_add(dd, _("Ready"));
 		}




More information about the Goodies-commits mailing list