static void compose_activate_privacy_system (Compose *compose,
PrefsAccount *account,
gboolean warn);
+static void compose_apply_folder_privacy_settings(Compose *compose, FolderItem *folder_item);
static void compose_toggle_return_receipt_cb(GtkToggleAction *action,
gpointer data);
static void compose_toggle_remove_refs_cb(GtkToggleAction *action,
cm_return_val_if_fail(account != NULL, NULL);
compose = compose_create(account, item, COMPOSE_NEW, FALSE);
+ compose_apply_folder_privacy_settings(compose, item);
/* override from name if mailto asked for it */
if (mailto_from) {
cm_return_val_if_fail(account != NULL, NULL);
compose = compose_create(account, msginfo->folder, COMPOSE_REPLY, FALSE);
+ compose_apply_folder_privacy_settings(compose, msginfo->folder);
compose->updating = TRUE;
else
mode = COMPOSE_FORWARD;
compose = compose_create(account, msginfo->folder, mode, batch);
+ compose_apply_folder_privacy_settings(compose, msginfo->folder);
compose->updating = TRUE;
compose->fwdinfo = procmsg_msginfo_get_full_info(msginfo);
hooks_invoke(COMPOSE_CREATED_HOOKLIST, compose);
- return compose;
+ return compose;
}
#undef INSERT_FW_HEADER
}
compose = compose_create(account, ((MsgInfo *)msginfo_list->data)->folder, COMPOSE_FORWARD, FALSE);
+ compose_apply_folder_privacy_settings(compose, ((MsgInfo *)msginfo_list->data)->folder);
compose->updating = TRUE;
} else {
compose_activate_privacy_system(compose, account, FALSE);
}
+ compose_apply_folder_privacy_settings(compose, msginfo->folder);
compose->targetinfo = procmsg_msginfo_copy(msginfo);
compose->targetinfo->tags = g_slist_copy(msginfo->tags);
cm_return_val_if_fail(account != NULL, NULL);
compose = compose_create(account, msginfo->folder, COMPOSE_REDIRECT, batch);
+ compose_apply_folder_privacy_settings(compose, msginfo->folder);
compose->updating = TRUE;
/* Privacy Systems menu */
compose_update_privacy_systems_menu(compose);
-
compose_activate_privacy_system(compose, account, TRUE);
+
toolbar_set_style(compose->toolbar->toolbar, compose->handlebox, prefs_common.toolbar_style);
if (batch) {
gtk_widget_realize(window);
compose_update_privacy_system_menu_item(compose, warn);
}
+static void compose_apply_folder_privacy_settings(Compose *compose, FolderItem *folder_item)
+{
+ if (folder_item != NULL) {
+ if (folder_item->prefs->always_sign != SIGN_OR_ENCRYPT_DEFAULT) {
+ compose_use_signing(compose,
+ (folder_item->prefs->always_sign == SIGN_OR_ENCRYPT_ALWAYS) ? TRUE : FALSE);
+ }
+ if (folder_item->prefs->always_encrypt != SIGN_OR_ENCRYPT_DEFAULT) {
+ compose_use_encryption(compose,
+ (folder_item->prefs->always_encrypt == SIGN_OR_ENCRYPT_ALWAYS) ? TRUE : FALSE);
+ }
+ }
+}
+
static void compose_toggle_ruler_cb(GtkToggleAction *action, gpointer data)
{
Compose *compose = (Compose *)data;
GtkWidget *combo_default_dictionary;
GtkWidget *combo_default_alt_dictionary;
#endif
+ GtkWidget *always_sign;
+ GtkWidget *always_encrypt;
/* apply to sub folders */
GtkWidget *request_return_receipt_rec_checkbtn;
GtkWidget *default_dictionary_rec_checkbtn;
GtkWidget *default_alt_dictionary_rec_checkbtn;
#endif
+ GtkWidget *always_sign_rec_checkbtn;
+ GtkWidget *always_encrypt_rec_checkbtn;
};
struct _FolderItemTemplatesPage
/** \brief Save the prefs in page to folder.
*
- * If the folder is not the one specified in page->item, then only those properties
+ * If the folder is not the one specified in page->item, then only those properties
* that have the relevant 'apply to sub folders' button checked are saved
*/
static void general_save_folder_prefs(FolderItem *folder, FolderItemGeneralPage *page)
gchar *tr = NULL;
GtkWidget *table;
+ GtkWidget *hbox;
GtkWidget *label;
GtkWidget *no_save_warning = NULL;
GtkWidget *default_alt_dictionary_rec_checkbtn = NULL;
gchar *dictionary;
#endif
+ GtkWidget *always_sign;
+ GtkListStore *always_sign_menu;
+ GtkWidget *always_encrypt;
+ GtkListStore *always_encrypt_menu;
GtkWidget *request_return_receipt_rec_checkbtn = NULL;
GtkWidget *save_copy_to_folder_rec_checkbtn = NULL;
GtkWidget *default_to_rec_checkbtn = NULL;
GtkWidget *default_bcc_rec_checkbtn = NULL;
GtkWidget *default_replyto_rec_checkbtn = NULL;
GtkWidget *default_account_rec_checkbtn = NULL;
+ GtkWidget *always_sign_rec_checkbtn = NULL;
+ GtkWidget *always_encrypt_rec_checkbtn = NULL;
GList *cur_ac;
GList *account_list;
rowcount++;
- /* Default dictionary */
+ /* Default alternate dictionary */
checkbtn_enable_default_alt_dictionary = gtk_check_button_new_with_label(_("Default alternate dictionary"));
gtk_table_attach(GTK_TABLE(table), checkbtn_enable_default_alt_dictionary, 0, 1,
rowcount, rowcount + 1, GTK_SHRINK | GTK_FILL, GTK_SHRINK, 0, 0);
rowcount++;
#endif
+ /* PGP sign? */
+ hbox = gtk_hbox_new (FALSE, 2);
+ gtk_widget_show (hbox);
+ gtk_table_attach (GTK_TABLE(table), hbox, 0, 2,
+ rowcount, rowcount+1, GTK_FILL, GTK_FILL, 0, 0);
+
+ label = gtk_label_new(_("Always sign messages"));
+ gtk_widget_show (label);
+ gtk_box_pack_start (GTK_BOX(hbox), label, FALSE, FALSE, 0);
+
+ always_sign = gtkut_sc_combobox_create (NULL, FALSE);
+ gtk_widget_show (always_sign);
+ gtk_box_pack_start (GTK_BOX(hbox), always_sign, FALSE, FALSE, 0);
+
+ always_sign_menu = GTK_LIST_STORE(gtk_combo_box_get_model(
+ GTK_COMBO_BOX(always_sign)));
+ COMBOBOX_ADD (always_sign_menu, _("Default"), SIGN_OR_ENCRYPT_DEFAULT);
+ COMBOBOX_ADD (always_sign_menu, _("No"), SIGN_OR_ENCRYPT_NEVER);
+ COMBOBOX_ADD (always_sign_menu, _("Yes"), SIGN_OR_ENCRYPT_ALWAYS);
+
+ combobox_select_by_data(GTK_COMBO_BOX(always_sign),
+ item->prefs->always_sign);
+
+ CLAWS_SET_TIP(hbox, _("\"Default\" will follow the applicable account preference"));
+
+ always_sign_rec_checkbtn = gtk_check_button_new();
+ gtk_widget_show (always_sign_rec_checkbtn);
+ gtk_table_attach(GTK_TABLE(table), always_sign_rec_checkbtn, 2, 3,
+ rowcount, rowcount + 1, GTK_SHRINK, GTK_SHRINK, 0, 0);
+
+ rowcount++;
+
+ /* PGP encrypt? */
+ hbox = gtk_hbox_new (FALSE, 2);
+ gtk_widget_show (hbox);
+ gtk_table_attach (GTK_TABLE(table), hbox, 0, 2,
+ rowcount, rowcount+1, GTK_FILL, GTK_FILL, 0, 0);
+
+ label = gtk_label_new(_("Always encrypt messages"));
+ gtk_widget_show (label);
+ gtk_box_pack_start (GTK_BOX(hbox), label, FALSE, FALSE, 0);
+
+ always_encrypt = gtkut_sc_combobox_create (NULL, FALSE);
+ gtk_widget_show (always_encrypt);
+ gtk_box_pack_start (GTK_BOX(hbox), always_encrypt, FALSE, FALSE, 0);
+
+ always_encrypt_menu = GTK_LIST_STORE(gtk_combo_box_get_model(
+ GTK_COMBO_BOX(always_encrypt)));
+ COMBOBOX_ADD (always_encrypt_menu, _("Default"), SIGN_OR_ENCRYPT_DEFAULT);
+ COMBOBOX_ADD (always_encrypt_menu, _("No"), SIGN_OR_ENCRYPT_NEVER);
+ COMBOBOX_ADD (always_encrypt_menu, _("Yes"), SIGN_OR_ENCRYPT_ALWAYS);
+
+ combobox_select_by_data(GTK_COMBO_BOX(always_encrypt),
+ item->prefs->always_encrypt);
+
+ CLAWS_SET_TIP(hbox, _("\"Default\" will follow the applicable account preference"));
+
+ always_encrypt_rec_checkbtn = gtk_check_button_new();
+ gtk_widget_show (always_encrypt_rec_checkbtn);
+ gtk_table_attach(GTK_TABLE(table), always_encrypt_rec_checkbtn, 2, 3,
+ rowcount, rowcount + 1, GTK_SHRINK, GTK_SHRINK, 0, 0);
+
+ rowcount++;
+
gtk_widget_show_all(table);
page->window = GTK_WIDGET(window);
page->checkbtn_enable_default_alt_dictionary = checkbtn_enable_default_alt_dictionary;
page->combo_default_alt_dictionary = combo_default_alt_dictionary;
#endif
+ page->always_sign = always_sign;
+ page->always_encrypt = always_encrypt;
page->request_return_receipt_rec_checkbtn = request_return_receipt_rec_checkbtn;
page->save_copy_to_folder_rec_checkbtn = save_copy_to_folder_rec_checkbtn;
page->default_dictionary_rec_checkbtn = default_dictionary_rec_checkbtn;
page->default_alt_dictionary_rec_checkbtn = default_alt_dictionary_rec_checkbtn;
#endif
+ page->always_sign_rec_checkbtn = always_sign_rec_checkbtn;
+ page->always_encrypt_rec_checkbtn = always_encrypt_rec_checkbtn;
page->page.widget = table;
}
GTK_COMBO_BOX(page->combo_default_alt_dictionary)));
}
#endif
+ if (all || gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->always_sign_rec_checkbtn))) {
+ prefs->always_sign =
+ combobox_get_active_data(GTK_COMBO_BOX(page->always_sign));
+ }
+ if (all || gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->always_encrypt_rec_checkbtn))) {
+ prefs->always_encrypt =
+ combobox_get_active_data(GTK_COMBO_BOX(page->always_encrypt));
+ }
folder_item_prefs_save_config(folder);
}
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->default_dictionary_rec_checkbtn)) ||
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->default_alt_dictionary_rec_checkbtn)) ||
#endif
+ gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->always_sign_rec_checkbtn)) ||
+ gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->always_encrypt_rec_checkbtn)) ||
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->default_reply_to_rec_checkbtn))
))
return TRUE;
|| gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->default_dictionary_rec_checkbtn))
|| gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->default_alt_dictionary_rec_checkbtn))
#endif
+ || gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->always_sign_rec_checkbtn))
+ || gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->always_encrypt_rec_checkbtn))
))
return TRUE;
else