From db568bcab30d39d46b8fd8111251dba8bf0a2300 Mon Sep 17 00:00:00 2001 From: Thomas Perl Date: Sat, 20 Mar 2010 12:20:25 -0700 Subject: [PATCH] Display node type in overview list Looks ugly with the default theme and selected memos, but it's better than nothing, and we can still work on it (add item/word counts, etc..). --- src/ui/callbacks.c | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++---- src/ui/callbacks.h | 10 ++++++++ src/ui/interface.c | 2 +- 3 files changed, 79 insertions(+), 6 deletions(-) diff --git a/src/ui/callbacks.c b/src/ui/callbacks.c index 3609770..a195c70 100644 --- a/src/ui/callbacks.c +++ b/src/ui/callbacks.c @@ -1196,7 +1196,11 @@ void add_new_node(nodeData * node, MainView * mainview, gboolean ischild) gtk_tree_store_append(GTK_TREE_STORE(model), &newiter, ptr); - gtk_tree_store_set(GTK_TREE_STORE(model), &newiter, NODE_NAME, node->name, NODE_PIXBUF, node->namepix, NODE_DATA, node, -1); + gtk_tree_store_set(GTK_TREE_STORE(model), &newiter, + NODE_NAME, format_overview_name(node, NULL), + NODE_PIXBUF, node->namepix, + NODE_DATA, node, + -1); if (path) { @@ -1411,7 +1415,7 @@ void callback_rename_node_real(MainView* mainview, gchar* new_name) gtk_window_set_title(GTK_WINDOW(mainview->data->node_view), nd->name); /* Update the value in the tree store */ - gtk_tree_store_set (GTK_TREE_STORE(model), &iter, NODE_NAME, new_name, -1); + gtk_tree_store_set (GTK_TREE_STORE(model), &iter, NODE_NAME, format_overview_name(nd, new_name), -1); break; } else if (rc == SQLITE_ERROR || rc == SQLITE_MISUSE) { @@ -1691,7 +1695,7 @@ gboolean move_node(MainView *mainview,GtkTreeIter *new_parent,GtkTreeIter *item_ if (item_befor!=NULL) gtk_tree_store_move_after(treeStore,&new_iter,item_befor);/*sometimes we need set position*/ - gtk_tree_store_set(treeStore, &new_iter, NODE_NAME, node->name,NODE_PIXBUF, node->namepix, NODE_DATA, node, -1);/*set data from old iter*/ + gtk_tree_store_set(treeStore, &new_iter, NODE_NAME, format_overview_name(node, NULL), NODE_PIXBUF, node->namepix, NODE_DATA, node, -1);/*set data from old iter*/ GtkTreeIter child; while (gtk_tree_model_iter_children(model, &child, item_to_move)==TRUE)/*move all childrens while some exits*/ @@ -1880,7 +1884,7 @@ void move_nodes_up(GtkTreeModel * model, GtkTreeRowReference * topnode, GtkTreeR gtk_tree_model_get(model, &child, NODE_DATA, &node, -1); gtk_tree_store_append(GTK_TREE_STORE(model), &newiter, newtopiterptr); - gtk_tree_store_set(GTK_TREE_STORE(model), &newiter, NODE_NAME, node->name, NODE_PIXBUF, node->namepix, NODE_DATA, node, -1); + gtk_tree_store_set(GTK_TREE_STORE(model), &newiter, NODE_NAME, format_overview_name(node, NULL), NODE_PIXBUF, node->namepix, NODE_DATA, node, -1); GtkTreeRowReference *newref = iter2ref(model, &newiter); @@ -3569,7 +3573,7 @@ GtkTreeRowReference *read_sqlite3_data(MainView * mainview, unsigned int parenti } gtk_tree_store_append(model, &newiter, par); - gtk_tree_store_set(model, &newiter, NODE_NAME, node->name, NODE_PIXBUF, node->namepix, NODE_DATA, node, -1); + gtk_tree_store_set(model, &newiter, NODE_NAME, format_overview_name(node, NULL), NODE_PIXBUF, node->namepix, NODE_DATA, node, -1); GtkTreePath *pa = gtk_tree_model_get_path(GTK_TREE_MODEL(model), &newiter); @@ -4567,3 +4571,62 @@ nodelist_select(MainView* mainview, TreeviewSelectType type) g_timeout_add(500, nodelist_scroll_to_selection, mainview); } + +const gchar * +format_overview_name(nodeData *nd, const gchar *name) +{ + static gchar *tmp; + gchar *font_desc, *font_color; + + if (tmp != NULL) { + g_free(tmp); + } + + if (name == NULL) { + name = nd->name; + } + + font_desc = he_get_logical_font_desc("SmallSystemFont"); + font_color = he_get_logical_font_color("SecondaryTextColor"); + + tmp = g_markup_printf_escaped("%s\n%s", + name, + font_desc, + font_color, + (nd->typ==NODE_CHECKLIST)?(_("Checklist")): + ((nd->typ==NODE_TEXT)?(_("Rich text")): + ((nd->typ==NODE_SKETCH)?(_("Sketch")):("")))); + + g_free(font_desc); + g_free(font_color); + + return tmp; +} + + +gchar * +he_get_logical_font_desc(const gchar *name) +{ + GtkSettings *settings = gtk_settings_get_default(); + GtkStyle *style = gtk_rc_get_style_by_paths(settings, + name, NULL, G_TYPE_NONE); + + return pango_font_description_to_string(style->font_desc); +} + +gchar * +he_get_logical_font_color(const gchar *name) +{ + GdkColor color; + GtkSettings *settings = gtk_settings_get_default(); + GtkStyle *style = gtk_rc_get_style_by_paths(settings, + "GtkButton", "osso-logical-colors", GTK_TYPE_BUTTON); + + if (gtk_style_lookup_color(style, name, &color)) { + return gdk_color_to_string(&color); + } else { + return NULL; + } +} + + diff --git a/src/ui/callbacks.h b/src/ui/callbacks.h index 775cb6a..722d742 100644 --- a/src/ui/callbacks.h +++ b/src/ui/callbacks.h @@ -158,6 +158,16 @@ void callback_sketch_button_toggled(HildonCheckButton* button, gpointer user_dat void callback_buffer_modified(GtkAction * action, gpointer data); +const gchar * +format_overview_name(nodeData *nd, const gchar *name); + +gchar * +he_get_logical_font_desc(const gchar *name); + +gchar * +he_get_logical_font_color(const gchar *name); + + /* UI helper functions needed in callbacks */ gboolean show_confirmation(MainView* mainview, gchar* question); diff --git a/src/ui/interface.c b/src/ui/interface.c index 8ca19ec..bbc11fe 100644 --- a/src/ui/interface.c +++ b/src/ui/interface.c @@ -848,7 +848,7 @@ void create_treeview(MainView * main) gtk_tree_view_column_pack_start(column, renderer2, FALSE); gtk_tree_view_column_pack_start(column, renderer1, TRUE); - gtk_tree_view_column_add_attribute(column, renderer1, "text", NODE_NAME); + gtk_tree_view_column_add_attribute(column, renderer1, "markup", NODE_NAME); gtk_tree_view_column_add_attribute(column, renderer2, "pixbuf", NODE_PIXBUF); /* Ellipsize to avoid horizontal scroll bars */ -- 2.11.4.GIT