[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