[balsa] balsa-index: Set the "icon-name" property
- From: Peter Bloomfield <peterb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [balsa] balsa-index: Set the "icon-name" property
- Date: Sat, 17 Oct 2020 20:43:03 +0000 (UTC)
commit 4e84888bcf3f518a9642517cbf92419e6e877cf1
Author: Peter Bloomfield <PeterBloomfield bellsouth net>
Date: Sat Oct 17 16:41:09 2020 -0400
balsa-index: Set the "icon-name" property
of the GtkCellRendererPixbufs instead of the "pixbuf" property.
* src/balsa-index.c (balsa_index_init): set the "icon-name" property;
* src/balsa-icons.c (balsa_register_pixbufs):
register the address-view icons by name instead of pixbuf.
* libbalsa/mailbox.c
(mailbox_model_init): the status and attachment columns are now strings, not pixbufs;
(mailbox_model_get_value): ditto;
(libbalsa_mailbox_set_unread_icon), (libbalsa_mailbox_set_trash_icon),
(libbalsa_mailbox_set_flagged_icon), (libbalsa_mailbox_set_replied_icon),
(libbalsa_mailbox_set_attach_icon), (libbalsa_mailbox_set_good_icon),
(libbalsa_mailbox_set_notrust_icon), (libbalsa_mailbox_set_bad_icon),
(libbalsa_mailbox_set_sign_icon), (libbalsa_mailbox_set_encr_icon):
the parameter is a string, not a pixbuf;
* libbalsa/mailbox.h: ditto.
ChangeLog | 19 +++++++++++++
libbalsa/mailbox.c | 81 ++++++++++++++++++------------------------------------
libbalsa/mailbox.h | 20 +++++++-------
src/balsa-icons.c | 71 ++++++++++++-----------------------------------
src/balsa-index.c | 4 +--
5 files changed, 75 insertions(+), 120 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index d93d366ba..7c0baa5a5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,22 @@
+2020-10-17 Peter Bloomfield <pbloomfield bellsouth net>
+
+ balsa-index: Set the "icon-name" property of the
+ GtkCellRendererPixbufs instead of the "pixbuf" property.
+
+ * src/balsa-index.c (balsa_index_init): set the "icon-name" property;
+ * src/balsa-icons.c (balsa_register_pixbufs):
+ register the address-view icons by name instead of pixbuf.
+ * libbalsa/mailbox.c (mailbox_model_init): the status and
+ attachment columns are now strings, not pixbufs;
+ (mailbox_model_get_value): ditto;
+ (libbalsa_mailbox_set_unread_icon), (libbalsa_mailbox_set_trash_icon),
+ (libbalsa_mailbox_set_flagged_icon), (libbalsa_mailbox_set_replied_icon),
+ (libbalsa_mailbox_set_attach_icon), (libbalsa_mailbox_set_good_icon),
+ (libbalsa_mailbox_set_notrust_icon), (libbalsa_mailbox_set_bad_icon),
+ (libbalsa_mailbox_set_sign_icon), (libbalsa_mailbox_set_encr_icon):
+ the parameter is a string, not a pixbuf;
+ * libbalsa/mailbox.h: ditto.
+
2020-10-17 Peter Bloomfield <pbloomfield bellsouth net>
Address-view: Set the "icon-name" property of the
diff --git a/libbalsa/mailbox.c b/libbalsa/mailbox.c
index 27260f046..8a8b5a9e8 100644
--- a/libbalsa/mailbox.c
+++ b/libbalsa/mailbox.c
@@ -2971,8 +2971,8 @@ mailbox_model_init(GtkTreeModelIface *iface)
iface->iter_parent = mailbox_model_iter_parent;
mailbox_model_col_type[LB_MBOX_MSGNO_COL] = G_TYPE_UINT;
- mailbox_model_col_type[LB_MBOX_MARKED_COL] = GDK_TYPE_PIXBUF;
- mailbox_model_col_type[LB_MBOX_ATTACH_COL] = GDK_TYPE_PIXBUF;
+ mailbox_model_col_type[LB_MBOX_MARKED_COL] = G_TYPE_STRING;
+ mailbox_model_col_type[LB_MBOX_ATTACH_COL] = G_TYPE_STRING;
mailbox_model_col_type[LB_MBOX_FROM_COL] = G_TYPE_STRING;
mailbox_model_col_type[LB_MBOX_SUBJECT_COL] = G_TYPE_STRING;
mailbox_model_col_type[LB_MBOX_DATE_COL] = G_TYPE_STRING;
@@ -3096,8 +3096,8 @@ mailbox_model_get_path(GtkTreeModel * tree_model, GtkTreeIter * iter)
message failed.
*/
-static GdkPixbuf *status_icons[LIBBALSA_MESSAGE_STATUS_ICONS_NUM];
-static GdkPixbuf *attach_icons[LIBBALSA_MESSAGE_ATTACH_ICONS_NUM];
+static const char *status_icons[LIBBALSA_MESSAGE_STATUS_ICONS_NUM];
+static const char *attach_icons[LIBBALSA_MESSAGE_ATTACH_ICONS_NUM];
/* Protects access to priv->msgnos_pending; */
@@ -3220,11 +3220,11 @@ mailbox_model_get_value(GtkTreeModel *tree_model,
/* case LB_MBOX_MSGNO_COL: handled above */
case LB_MBOX_MARKED_COL:
if (msg && msg->status_icon < LIBBALSA_MESSAGE_STATUS_ICONS_NUM)
- g_value_set_object(value, status_icons[msg->status_icon]);
+ g_value_set_static_string(value, status_icons[msg->status_icon]);
break;
case LB_MBOX_ATTACH_COL:
if (msg && msg->attach_icon < LIBBALSA_MESSAGE_ATTACH_ICONS_NUM)
- g_value_set_object(value, attach_icons[msg->attach_icon]);
+ g_value_set_static_string(value, attach_icons[msg->attach_icon]);
break;
case LB_MBOX_FROM_COL:
if(msg) {
@@ -3411,86 +3411,57 @@ mailbox_model_iter_parent(GtkTreeModel * tree_model,
return FALSE;
}
-/* Set icons used in tree view. */
-static void
-libbalsa_mailbox_set_icon(GdkPixbuf * pixbuf, GdkPixbuf ** pixbuf_store)
-{
- if (*pixbuf_store)
- g_object_unref(*pixbuf_store);
- *pixbuf_store = pixbuf;
-}
-
/* Icons for status column. */
void
-libbalsa_mailbox_set_unread_icon(GdkPixbuf * pixbuf)
+libbalsa_mailbox_set_unread_icon(const char *name)
{
- libbalsa_mailbox_set_icon(pixbuf,
- &status_icons
- [LIBBALSA_MESSAGE_STATUS_UNREAD]);
+ status_icons[LIBBALSA_MESSAGE_STATUS_UNREAD] = name;
}
-void libbalsa_mailbox_set_trash_icon(GdkPixbuf * pixbuf)
+void libbalsa_mailbox_set_trash_icon(const char *name)
{
- libbalsa_mailbox_set_icon(pixbuf,
- &status_icons
- [LIBBALSA_MESSAGE_STATUS_DELETED]);
+ status_icons[LIBBALSA_MESSAGE_STATUS_DELETED] = name;
}
-void libbalsa_mailbox_set_flagged_icon(GdkPixbuf * pixbuf)
+void libbalsa_mailbox_set_flagged_icon(const char *name)
{
- libbalsa_mailbox_set_icon(pixbuf,
- &status_icons
- [LIBBALSA_MESSAGE_STATUS_FLAGGED]);
+ status_icons[LIBBALSA_MESSAGE_STATUS_FLAGGED] = name;
}
-void libbalsa_mailbox_set_replied_icon(GdkPixbuf * pixbuf)
+void libbalsa_mailbox_set_replied_icon(const char *name)
{
- libbalsa_mailbox_set_icon(pixbuf,
- &status_icons
- [LIBBALSA_MESSAGE_STATUS_REPLIED]);
+ status_icons[LIBBALSA_MESSAGE_STATUS_REPLIED] = name;
}
/* Icons for attachment column. */
-void libbalsa_mailbox_set_attach_icon(GdkPixbuf * pixbuf)
+void libbalsa_mailbox_set_attach_icon(const char *name)
{
- libbalsa_mailbox_set_icon(pixbuf,
- &attach_icons
- [LIBBALSA_MESSAGE_ATTACH_ATTACH]);
+ attach_icons[LIBBALSA_MESSAGE_ATTACH_ATTACH] = name;
}
-void libbalsa_mailbox_set_good_icon(GdkPixbuf * pixbuf)
+void libbalsa_mailbox_set_good_icon(const char *name)
{
- libbalsa_mailbox_set_icon(pixbuf,
- &attach_icons
- [LIBBALSA_MESSAGE_ATTACH_GOOD]);
+ attach_icons[LIBBALSA_MESSAGE_ATTACH_GOOD] = name;
}
-void libbalsa_mailbox_set_notrust_icon(GdkPixbuf * pixbuf)
+void libbalsa_mailbox_set_notrust_icon(const char *name)
{
- libbalsa_mailbox_set_icon(pixbuf,
- &attach_icons
- [LIBBALSA_MESSAGE_ATTACH_NOTRUST]);
+ attach_icons[LIBBALSA_MESSAGE_ATTACH_NOTRUST] = name;
}
-void libbalsa_mailbox_set_bad_icon(GdkPixbuf * pixbuf)
+void libbalsa_mailbox_set_bad_icon(const char *name)
{
- libbalsa_mailbox_set_icon(pixbuf,
- &attach_icons
- [LIBBALSA_MESSAGE_ATTACH_BAD]);
+ attach_icons[LIBBALSA_MESSAGE_ATTACH_BAD] = name;
}
-void libbalsa_mailbox_set_sign_icon(GdkPixbuf * pixbuf)
+void libbalsa_mailbox_set_sign_icon(const char *name)
{
- libbalsa_mailbox_set_icon(pixbuf,
- &attach_icons
- [LIBBALSA_MESSAGE_ATTACH_SIGN]);
+ attach_icons[LIBBALSA_MESSAGE_ATTACH_SIGN] = name;
}
-void libbalsa_mailbox_set_encr_icon(GdkPixbuf * pixbuf)
+void libbalsa_mailbox_set_encr_icon(const char *name)
{
- libbalsa_mailbox_set_icon(pixbuf,
- &attach_icons
- [LIBBALSA_MESSAGE_ATTACH_ENCR]);
+ attach_icons[LIBBALSA_MESSAGE_ATTACH_ENCR] = name;
}
/* =================================================================== *
diff --git a/libbalsa/mailbox.h b/libbalsa/mailbox.h
index 617dccd86..c34238c0b 100644
--- a/libbalsa/mailbox.h
+++ b/libbalsa/mailbox.h
@@ -532,16 +532,16 @@ gboolean libbalsa_mailbox_msgno_has_flags(LibBalsaMailbox * mailbox,
LibBalsaMessageFlag unset);
/* set icons */
-void libbalsa_mailbox_set_unread_icon(GdkPixbuf * pixbuf);
-void libbalsa_mailbox_set_trash_icon(GdkPixbuf * pixbuf);
-void libbalsa_mailbox_set_flagged_icon(GdkPixbuf * pixbuf);
-void libbalsa_mailbox_set_replied_icon(GdkPixbuf * pixbuf);
-void libbalsa_mailbox_set_attach_icon(GdkPixbuf * pixbuf);
-void libbalsa_mailbox_set_good_icon(GdkPixbuf * pixbuf);
-void libbalsa_mailbox_set_notrust_icon(GdkPixbuf * pixbuf);
-void libbalsa_mailbox_set_bad_icon(GdkPixbuf * pixbuf);
-void libbalsa_mailbox_set_sign_icon(GdkPixbuf * pixbuf);
-void libbalsa_mailbox_set_encr_icon(GdkPixbuf * pixbuf);
+void libbalsa_mailbox_set_unread_icon(const char *name);
+void libbalsa_mailbox_set_trash_icon(const char *name);
+void libbalsa_mailbox_set_flagged_icon(const char *name);
+void libbalsa_mailbox_set_replied_icon(const char *name);
+void libbalsa_mailbox_set_attach_icon(const char *name);
+void libbalsa_mailbox_set_good_icon(const char *name);
+void libbalsa_mailbox_set_notrust_icon(const char *name);
+void libbalsa_mailbox_set_bad_icon(const char *name);
+void libbalsa_mailbox_set_sign_icon(const char *name);
+void libbalsa_mailbox_set_encr_icon(const char *name);
/* Partial messages */
void libbalsa_mailbox_try_reassemble(LibBalsaMailbox * mailbox,
diff --git a/src/balsa-icons.c b/src/balsa-icons.c
index 4057d8f7a..6b2eb6a59 100644
--- a/src/balsa-icons.c
+++ b/src/balsa-icons.c
@@ -186,59 +186,24 @@ balsa_unregister_pixmaps(void)
void
balsa_register_pixbufs(GtkWidget * widget)
{
- static struct {
- void (*set_icon_pixbuf) (GdkPixbuf *);
- const char *icon;
- } icon_pixbufs[] = {
- {libbalsa_mailbox_set_unread_icon, BALSA_PIXMAP_INFO_NEW},
- {libbalsa_mailbox_set_trash_icon, BALSA_PIXMAP_INFO_DELETED},
- {libbalsa_mailbox_set_flagged_icon, BALSA_PIXMAP_INFO_FLAGGED},
- {libbalsa_mailbox_set_replied_icon, BALSA_PIXMAP_INFO_REPLIED},
- {libbalsa_mailbox_set_attach_icon, BALSA_PIXMAP_INFO_ATTACHMENT},
- {libbalsa_mailbox_set_good_icon, BALSA_PIXMAP_SIGN_GOOD},
- {libbalsa_mailbox_set_notrust_icon, BALSA_PIXMAP_SIGN_NOTRUST},
- {libbalsa_mailbox_set_bad_icon, BALSA_PIXMAP_SIGN_BAD},
- {libbalsa_mailbox_set_sign_icon, BALSA_PIXMAP_SIGN},
- {libbalsa_mailbox_set_encr_icon, BALSA_PIXMAP_ENCR},
- };
-
- static struct {
- void (*set_icon_name) (const char *);
- const char *icon;
- } icon_names[] = {
- {libbalsa_address_view_set_book_icon, "stock_book_red"},
- {libbalsa_address_view_set_close_icon, "window-close-symbolic"},
- {libbalsa_address_view_set_drop_down_icon, "pan-down-symbolic"},
- };
-
- unsigned i;
- GtkIconTheme *icon_theme = gtk_icon_theme_get_default();
-
- for (i = 0; i < G_N_ELEMENTS(icon_pixbufs); i++) {
- GdkPixbuf *pixbuf;
- GError *err = NULL;
- int width, height;
- const char *use_id = balsa_icon_id(icon_pixbufs[i].icon);
-
- if (use_id == NULL) /* No icon table */
- break;
-
- gtk_icon_size_lookup(GTK_ICON_SIZE_MENU, &width, &height);
- pixbuf =
- gtk_icon_theme_load_icon(icon_theme, use_id, width,
- GTK_ICON_LOOKUP_USE_BUILTIN, &err);
- if (err) {
- g_warning("%s %s size %d err %s", __func__, use_id,
- width, err->message);
- g_clear_error(&err);
- } else {
- icon_pixbufs[i].set_icon_pixbuf(pixbuf);
- }
- }
-
- for (i = 0; i < G_N_ELEMENTS(icon_names); i++) {
- icon_names[i].set_icon_name(icon_names[i].icon);
- }
+ /* Icons for mailbox status column: */
+ libbalsa_mailbox_set_unread_icon("mail-unread");
+ libbalsa_mailbox_set_replied_icon("mail-replied");
+ libbalsa_mailbox_set_trash_icon("edit-delete");
+ libbalsa_mailbox_set_flagged_icon("emblem-important");
+
+ /* Icons for mailbox attachment column: */
+ libbalsa_mailbox_set_attach_icon("mail-attachment");
+ libbalsa_mailbox_set_good_icon("balsa-signature-good");
+ libbalsa_mailbox_set_notrust_icon("balsa-signature-notrust");
+ libbalsa_mailbox_set_bad_icon("balsa-signature-bad");
+ libbalsa_mailbox_set_sign_icon("balsa-signature-unknown");
+ libbalsa_mailbox_set_encr_icon("balsa-encrypted");
+
+ /* Icons for address-view: */
+ libbalsa_address_view_set_book_icon("stock_book_red");
+ libbalsa_address_view_set_close_icon("window-close-symbolic");
+ libbalsa_address_view_set_drop_down_icon("pan-down-symbolic");
}
const gchar *
diff --git a/src/balsa-index.c b/src/balsa-index.c
index 903d45d4e..70b721993 100644
--- a/src/balsa-index.c
+++ b/src/balsa-index.c
@@ -384,7 +384,7 @@ balsa_index_init(BalsaIndex * index)
gtk_cell_renderer_set_fixed_size(renderer, -1, height);
column = gtk_tree_view_column_new_with_attributes
("S", renderer,
- "pixbuf", LB_MBOX_MARKED_COL,
+ "icon-name", LB_MBOX_MARKED_COL,
"cell-background", LB_MBOX_BACKGROUND_COL,
"cell-background-set", LB_MBOX_BACKGROUND_SET_COL,
NULL);
@@ -396,7 +396,7 @@ balsa_index_init(BalsaIndex * index)
gtk_cell_renderer_set_fixed_size(renderer, -1, height);
column = gtk_tree_view_column_new_with_attributes
("A", renderer,
- "pixbuf", LB_MBOX_ATTACH_COL,
+ "icon-name", LB_MBOX_ATTACH_COL,
"cell-background", LB_MBOX_BACKGROUND_COL,
"cell-background-set", LB_MBOX_BACKGROUND_SET_COL,
NULL);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]