OSDN Git Service

fixed 2 errors; cleaned some warnings
authoriev <iev@land.ru>
Thu, 29 Dec 2011 09:51:23 +0000 (13:51 +0400)
committeriev <iev@land.ru>
Thu, 29 Dec 2011 09:51:23 +0000 (13:51 +0400)
src/.ebgstsrc.c.swp [new file with mode: 0644]
src/audio.c
src/ebgstsrc.c
src/ebook.c
src/history.c
src/mainwnd.c
src/prefs.c
src/render.c
src/renderheadword.c

diff --git a/src/.ebgstsrc.c.swp b/src/.ebgstsrc.c.swp
new file mode 100644 (file)
index 0000000..d4403e2
Binary files /dev/null and b/src/.ebgstsrc.c.swp differ
index 0609258..73c3d53 100644 (file)
@@ -59,6 +59,7 @@ EB_Error_Code audio_save_wave(RESULT *res, gchar *file)
         else
             write_len = fwrite(binary_data, read_len, 1, fp);
     }
+    (void)write_len;
     return EB_SUCCESS;
 }
 
index 0028cc2..e193a1f 100644 (file)
@@ -23,6 +23,7 @@ static void eb_gst_src_class_init(EbGstSrcClass *klass)
     gobject_class = G_OBJECT_CLASS(klass);
     eklass = GST_BASE_SRC_CLASS(klass);
 
+    (void)gobject_class;
     eklass->start = GST_DEBUG_FUNCPTR(eb_gst_src_start);
     eklass->stop = GST_DEBUG_FUNCPTR(eb_gst_src_stop);
     eklass->is_seekable = GST_DEBUG_FUNCPTR(eb_gst_src_is_seekable);
index ec633e9..c34ce86 100644 (file)
@@ -439,10 +439,11 @@ gboolean ebook_search(const gchar *word, gint method, GSequence *results, gint m
     GtkTreeModel *store;
     BOOK_INFO *binfo;
 
+    ebook_clear_results(results);
+
     if(!mainwnd_get_dicts(&store, &iter))
         return False;
 
-    ebook_clear_results(results);
     ebook.results = results;
     gboolean ret = False;
     do {
index ae98c99..097faab 100644 (file)
@@ -96,11 +96,11 @@ gboolean history_remove_word(GtkTreeModel *model, GtkTreePath *path, GtkTreeIter
 
 void history_insert_word(History *self, const gchar *word)
 {
+    if(!word)
+       return;
     if(!strlen(word))
        return;
-    //gboolean b;
-    //GtkTreeIter iter;
-    //GtkTreePath *path;
+
     GtkComboBox *mainwnd_search = GTK_COMBO_BOX(gtk_builder_get_object(GTK_BUILDER(_builder), "mainwnd_search"));
     GtkTreeModel *model = gtk_combo_box_get_model(mainwnd_search);
 
@@ -108,24 +108,11 @@ void history_insert_word(History *self, const gchar *word)
     gtk_tree_model_foreach(model, history_remove_word, (gpointer)word);
     gint n = prefs_get_int(self->prefs, "dictbar.word_hist");
     if(n < 10) n = 10;
-#if 0
-    while(gtk_tree_model_iter_n_children(model, NULL) > n)
-    {
-        path = gtk_tree_path_new_from_indices(n - 1, -1);
-        b = gtk_tree_model_get_iter(model, &iter, path);
-        gtk_tree_path_free(path);
-        if(!b)  break;
-        gtk_list_store_remove(GTK_LIST_STORE(model), &iter);
-    }
-    gtk_list_store_prepend(GTK_LIST_STORE(model), &iter);
-    gtk_list_store_set(GTK_LIST_STORE(model), &iter, 0, word, -1);
-#else
+
     while(gtk_tree_model_iter_n_children(model, NULL) > n)
        gtk_combo_box_text_remove(GTK_COMBO_BOX_TEXT(mainwnd_search), n - 1);
     gtk_combo_box_text_prepend_text(GTK_COMBO_BOX_TEXT(mainwnd_search), word);
     gtk_combo_box_set_active(mainwnd_search, 0);
-#endif
-    return;
 }
 
 gboolean history_save_word(GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data)
index 3eda509..a758015 100644 (file)
@@ -425,54 +425,18 @@ void mainwnd_status_icon_add(Mainwnd *self)
     g_object_unref(pixbuf);
 }
 
-void mainwnd_dict_groups_update(Mainwnd *self)
-{
-    GtkTreeStore *dicts_store = GTK_TREE_STORE(gtk_builder_get_object(GTK_BUILDER(self->builder), "dicts_store"));
-    GtkComboBoxText *combo = GTK_COMBO_BOX_TEXT(gtk_builder_get_object(GTK_BUILDER(self->builder), "mainwnd_dict_group"));
-    gchar *sgroup = g_strdup(builder_get_str(self->builder, "mainwnd_dict_group"));
-    gint ngroup = builder_get_int(self->builder, "mainwnd_dict_group");        
-    if(ngroup < 0) ngroup = 0;
-    gtk_combo_box_text_remove_all(combo);
-    GtkTreeIter iter;
-    if(gtk_tree_model_get_iter_first(GTK_TREE_MODEL(dicts_store), &iter))
-    {
-       gint i = 0;
-       do { 
-           gchar *title;
-           gtk_tree_model_get(GTK_TREE_MODEL(dicts_store), &iter, DICT_ALIAS, &title, -1);
-           gtk_combo_box_text_append_text(combo, title);
-           if(ngroup == i++)
-           {
-               if(g_strcmp0(sgroup, title))
-                   ngroup = 0;
-           }
-           g_free(title);
-       } while(gtk_tree_model_iter_next(GTK_TREE_MODEL(dicts_store), &iter));
-       if(i <= ngroup)
-           ngroup = 0;
-    }
-    g_free(sgroup);
-    builder_set_int(self->builder, "mainwnd_dict_group", ngroup);
-}
-
-static void mainwnd_dict_remove_cb(gpointer data, gpointer user_data)
+static void mainwnd_dict_remove_cb(GtkWidget *w, gpointer data)
 {
-    g_printf("remove_cb\n");
-    //GtkContainer *c = GTK_CONTAINER(data);
-    GtkWidget *w = GTK_WIDGET(data);
+    GtkContainer *c = GTK_CONTAINER(data);
     if(GTK_IS_TOOL_ITEM(w))
-       gtk_widget_destroy(w);
-//        gtk_container_remove(c, w);
+        gtk_container_remove(c, w);
 }
 
 void mainwnd_dict_buttons_remove(Mainwnd *self)
 {
     GtkWidget *tb = GTK_WIDGET(gtk_builder_get_object(GTK_BUILDER(self->builder), "mainwnd_dicts"));
     gtk_widget_hide(tb);
-    GList *list = gtk_container_get_children(GTK_CONTAINER(tb));
-    if(gtk_toolbar_get_n_items(tb) > 0)
-       g_list_foreach(list , mainwnd_dict_remove_cb, tb);
-    //gtk_container_foreach(GTK_CONTAINER(tb), mainwnd_dict_remove_cb, tb);
+    gtk_container_foreach(GTK_CONTAINER(tb), mainwnd_dict_remove_cb, tb);
     gtk_widget_show_all(tb);
 }
 
@@ -482,22 +446,16 @@ void mainwnd_dict_toggled_cb(GtkWidget *w, gpointer data)
     binfo->active = gtk_toggle_tool_button_get_active(GTK_TOGGLE_TOOL_BUTTON(w));
 }
 
-void mainwnd_search_btn_clicked_cb(GtkWidget *w, gpointer data)
-{
-    Mainwnd *mw = MAINWND(data);
-    const gchar *word = builder_get_str(mw->builder, "mainwnd_search");
-    mainwnd_search(mw, word, -1);
-}
-
 void mainwnd_dict_buttons_add(Mainwnd *self)
 {
+    GtkToolbar *tb = GTK_TOOLBAR(gtk_builder_get_object(GTK_BUILDER(self->builder), "mainwnd_dicts"));
+    gtk_toolbar_insert(tb, gtk_separator_tool_item_new(), -1);
     gint n = builder_get_int(self->builder, "mainwnd_dict_group");
     if(n < 0)
        return;
     GtkTreeIter iter;
     if(!dicts_get_nth(self->dicts, n, &iter))
        return;
-    GtkToolbar *tb = GTK_TOOLBAR(gtk_builder_get_object(GTK_BUILDER(self->builder), "mainwnd_dicts"));
     gchar *title;
     BOOK_INFO *binfo;
     GtkTreeModel *store = GTK_TREE_MODEL(self->dicts->store);
@@ -529,6 +487,54 @@ void mainwnd_dict_buttons_update(Mainwnd *self)
     mainwnd_dict_buttons_add(self);
 }
 
+void mainwnd_dict_group_changed_cb(GtkComboBox *widget, gpointer data)
+{
+    Mainwnd *mw = MAINWND(data);
+    mainwnd_dict_buttons_update(mw);
+}
+
+void mainwnd_dict_groups_update(Mainwnd *self)
+{
+    GtkWidget *w = GTK_WIDGET(gtk_builder_get_object(GTK_BUILDER(self->builder), "mainwnd_dict_group"));
+    g_signal_handlers_block_by_func(w, mainwnd_dict_group_changed_cb, self);
+
+    GtkTreeStore *dicts_store = GTK_TREE_STORE(gtk_builder_get_object(GTK_BUILDER(self->builder), "dicts_store"));
+    GtkComboBoxText *combo = GTK_COMBO_BOX_TEXT(gtk_builder_get_object(GTK_BUILDER(self->builder), "mainwnd_dict_group"));
+    gchar *sgroup = g_strdup(builder_get_str(self->builder, "mainwnd_dict_group"));
+    gint ngroup = builder_get_int(self->builder, "mainwnd_dict_group");        
+    if(ngroup < 0) ngroup = 0;
+    gtk_combo_box_text_remove_all(combo);
+    GtkTreeIter iter;
+    if(gtk_tree_model_get_iter_first(GTK_TREE_MODEL(dicts_store), &iter))
+    {
+       gint i = 0;
+       do { 
+           gchar *title;
+           gtk_tree_model_get(GTK_TREE_MODEL(dicts_store), &iter, DICT_ALIAS, &title, -1);
+           gtk_combo_box_text_append_text(combo, title);
+           if(ngroup == i++)
+           {
+               if(g_strcmp0(sgroup, title))
+                   ngroup = 0;
+           }
+           g_free(title);
+       } while(gtk_tree_model_iter_next(GTK_TREE_MODEL(dicts_store), &iter));
+       if(i <= ngroup)
+           ngroup = 0;
+    }
+    g_free(sgroup);
+    builder_set_int(self->builder, "mainwnd_dict_group", ngroup);
+
+    g_signal_handlers_unblock_by_func(w, mainwnd_dict_group_changed_cb, self);
+}
+
+void mainwnd_search_btn_clicked_cb(GtkWidget *w, gpointer data)
+{
+    Mainwnd *mw = MAINWND(data);
+    const gchar *word = builder_get_str(mw->builder, "mainwnd_search");
+    mainwnd_search(mw, word, -1);
+}
+
 gboolean mainwnd_results_key_press_event_cb(GtkWidget *widget, GdkEventKey *event, gpointer data)
 {
     Mainwnd *mw = MAINWND(data);
@@ -605,8 +611,8 @@ void mainwnd_prepare(Mainwnd *self)
 
     gint active = dicts_load(self->dicts);
     mainwnd_dict_groups_update(self);
-    mainwnd_dict_buttons_update(self);
     builder_set_int(self->builder, "mainwnd_dict_group", active);
+    mainwnd_dict_buttons_update(self);
 
     gint i;
     GtkTreeIter iter;
@@ -711,12 +717,6 @@ void mainwnd_copyright_btn_clicked_cb(GtkWidget *widget, gpointer data)
     mainwnd_search(mw, NULL, SEARCH_METHOD_COPYRIGHT);
 }
 
-void mainwnd_dict_group_changed_cb(GtkComboBox *widget, gpointer data)
-{
-    Mainwnd *mw = MAINWND(data);
-    mainwnd_dict_buttons_update(mw);
-}
-
 void mainwnd_prev_clicked_cb(GtkWidget *w, gpointer data)
 {
     history_prev(data);
index 1a08d28..f34fdd5 100644 (file)
@@ -363,13 +363,14 @@ void prefs_load(Prefs *self)
 
 gint prefs_get_int(Prefs *self, const gchar *name)
 {
-    gpointer ptr = g_datalist_get_data(&self->data, name);
-    return (gint)ptr;
+    glong l = (glong)g_datalist_get_data(&self->data, name);
+    return (gint)l;
 }
 
 void prefs_set_int(Prefs *self, const gchar *name, gint value)
 {
-    g_datalist_set_data(&self->data, name, (gpointer)value);
+    glong l = value;
+    g_datalist_set_data(&self->data, name, (gpointer)l);
 }
 
 const gchar* prefs_get_str(Prefs *self, const gchar *name)
index d613498..67480d3 100644 (file)
@@ -8,6 +8,7 @@
 #include "textview.h"
 #include "video.h"
 #include "render.h"
+#include "mainwnd.h"
 
 void render_parse_link(RenderTextCtx *ctx, gchar *str, RESULT *lnk)
 {
index bc4d3bd..85b32f1 100644 (file)
@@ -3,6 +3,7 @@
 #include "eb123.h"
 #include "ebook.h"
 #include "renderheadword.h"
+#include "render.h"
 
 G_DEFINE_TYPE(RenderHeadword, render_headword, GTK_TYPE_CELL_RENDERER);
 
@@ -74,7 +75,6 @@ typedef struct _render_headword_ctx
     gboolean sub, sup;
     gboolean pretend;
     cairo_t *cr;
-    //GdkWindow *window;
     GtkWidget *widget;
     GtkCellRendererState flags;
     RenderHeadword *r;
@@ -131,12 +131,7 @@ static void render_headword_startElement(void *ctx, const xmlChar *name, const x
        GdkRGBA color;
        gtk_style_context_get_color(context, state, &color);
        gchar *spec = gdk_rgba_to_string(&color);
-       //gchar *spec = gtk_color_selection_palette_to_string(&(my->widget->style->fg[state]), 1);
        GdkPixbuf *pixbuf;
-       /*
-       GdkColor color;
-       gdk_color_parse(spec, &color);
-       */
        if(spec) g_free(spec);
        render_headword_get_size(NULL, my->widget, NULL, &x_offset, &y_offset, NULL, NULL);
        if((pixbuf = ebook_read_gaiji(my->r->res->binfo, (gchar*)atts[1], &w, &h)))
@@ -180,11 +175,6 @@ static void render_headword_get_size(GtkCellRenderer *cell,
     {
        if(!GTK_IS_WIDGET(widget))
            return;
-#if 0
-       GtkStyleContext *context = gtk_widget_get_style_context(widget);
-       const PangoFontDescription *font_desc = gtk_style_context_get_font(context, GTK_STATE_FLAG_NORMAL);
-       //GtkStyle *style = gtk_widget_get_style(widget);
-#endif
        *h = 2*render_get_font_size(widget);
     }
     if(x_offset)