static void add_button(gpointer compose) { GtkWidget *toolbar; PrefsCommon *prefs; gint n = 0; GtkToolItem *item; GtkWidget *icon; GdkPixbuf *pixbuf; if (!config.enable_autoenc) { debug_print("autoenc: autoenc is disabled\n"); return; } toolbar = syl_plugin_compose_get_toolbar(compose); //n = gtk_toolbar_get_n_items(GTK_TOOLBAR(toolbar)); prefs = prefs_common_get(); if (prefs->compose_toolbar_setting) { gint i; gchar **namev; namev = g_strsplit(prefs->compose_toolbar_setting, ",", -1); for (i = 0; namev[i] != NULL; i++) { if (!strcmp(namev[i], "send")) { debug_print("send pos: %d\n", i); n = i + 1; break; } } g_strfreev(namev); } else { /* send,send-later,draft,... */ n = 1; } //icon = stock_pixbuf_widget_for_toolbar(STOCK_PIXMAP_MAIL_SEND); pixbuf = gdk_pixbuf_new_from_inline(sizeof(send_enc), send_enc, FALSE, NULL); icon = gtk_image_new_from_pixbuf(pixbuf); item = gtk_tool_button_new(icon, _("Send with encryption")); gtk_tool_item_set_is_important(item, TRUE); gtk_toolbar_insert(GTK_TOOLBAR(toolbar), item, n); //gtk_widget_show_all(GTK_WIDGET(toolbar)); gtk_widget_show_all(GTK_WIDGET(item)); g_object_set_data(G_OBJECT(toolbar), "send-enc-button", item); g_signal_connect(G_OBJECT(item), "clicked", G_CALLBACK(send_encryption_clicked), compose); change_button_sensitive(compose, GTK_WIDGET(item)); }
void exec_autoforward_cb(GObject *obj, FolderItem *item, const gchar *file, guint num) { PrefsCommon *prefs_common; PrefsAccount *ac; gchar *rcpath; GSList* to_list=NULL; gchar *to; GError *errval; gboolean forward_all; gsize gz=0; gchar **folders; gboolean bmatch; int nindex; if (g_enable!=TRUE){ return; } if (item->stype != F_NORMAL && item->stype != F_INBOX){ return; } prefs_common = prefs_common_get(); if (prefs_common->online_mode != TRUE){ return; } ac = (PrefsAccount*)account_get_default(); g_return_if_fail(ac != NULL); /* check item->path for filter */ g_print("[DEBUG] %s:%s name:%s\n", G_STRLOC, G_STRFUNC, item->name); g_print("[DEBUG] %s:%s path:%s\n", G_STRLOC, G_STRFUNC, item->path); #if 0 MsgInfo *msginfo = folder_item_get_msginfo(item, num); debug_print("[DEBUG] flags:%08x UNREAD:%08x NEW:%08x MARKED:%08x ", msginfo->flags, MSG_UNREAD, MSG_NEW, MSG_MARKED); debug_print("[DEBUG] perm_flags:%08x \n", msginfo->flags.perm_flags); debug_print("[DEBUG] tmp_flags:%08x \n", msginfo->flags.tmp_flags); if ( g_unreadonly_flg != FALSE){ debug_print("[DEBUG] unreadonly flag:%s\n", g_unreadonly_flg ? "true" : "false"); if (MSG_IS_UNREAD(msginfo->flags)){ debug_print("[DEBUG] MSG_IS_UNREAD:true"); } else { return; } } #endif rcpath = g_strconcat(get_rc_dir(), G_DIR_SEPARATOR_S, "autoforwardrc", NULL); g_keyfile = g_key_file_new(); g_key_file_load_from_file(g_keyfile, rcpath, G_KEY_FILE_KEEP_COMMENTS, NULL); to=g_key_file_get_string (g_keyfile, "forward", "to", NULL); debug_print("[DEBUG] to:%s", to); to_list = address_list_append(to_list, to); forward_all = g_key_file_get_boolean (g_keyfile, "forward", "all", &errval); if (forward_all != TRUE){ if (errval) { switch (errval->code){ case G_KEY_FILE_ERROR_INVALID_VALUE: case G_KEY_FILE_ERROR_KEY_NOT_FOUND: forward_all=TRUE; break; default: break; } } } bmatch = FALSE; if (forward_all != TRUE){ folders = g_key_file_get_string_list(g_keyfile, "forward", "folder", &gz, NULL); if (gz != 0) { /* match or not */ nindex = 0; for (nindex = 0; nindex < gz; nindex++){ if (g_strcmp0(folders[nindex], item->path) == 0){ bmatch = TRUE; debug_print("[DEBUG] %s %s => match\n", folders[nindex], item->path); } } } else { bmatch = FALSE; } }else{ bmatch = TRUE; } g_free(rcpath); g_return_if_fail(to_list != NULL); g_print("[DEBUG] item->path:%s\n", item->path); g_print("[DEBUG] bmatch:%d\n", bmatch); g_return_if_fail(bmatch == TRUE); syl_plugin_send_message_set_forward_flags(ac->address); syl_plugin_send_message(file, ac, to_list); }