#include "undo.h"
#include "foldersel.h"
#include "toolbar.h"
-
+#include "inc.h"
enum
{
COL_MIMETYPE = 0,
GtkWidget *widget);
static void compose_set_privacy_system_cb(GtkWidget *widget,
gpointer data);
-static void compose_update_privacy_system_menu_item(Compose * compose);
+static void compose_update_privacy_system_menu_item(Compose * compose, gboolean warn);
static void activate_privacy_system (Compose *compose,
- PrefsAccount *account);
+ PrefsAccount *account,
+ gboolean warn);
static void compose_use_signing(Compose *compose, gboolean use_signing);
static void compose_use_encryption(Compose *compose, gboolean use_encryption);
static void compose_toggle_return_receipt_cb(gpointer data, guint action,
}
if (privacy != NULL) {
compose->privacy_system = g_strdup(privacy);
- compose_update_privacy_system_menu_item(compose);
+ compose_update_privacy_system_menu_item(compose, FALSE);
compose_use_encryption(compose, TRUE);
}
}
}
if (privacy != NULL) {
compose->privacy_system = g_strdup(privacy);
- compose_update_privacy_system_menu_item(compose);
+ compose_update_privacy_system_menu_item(compose, FALSE);
compose_use_signing(compose, TRUE);
}
}
compose->privacy_system = privacy_system;
compose_use_signing(compose, use_signing);
compose_use_encryption(compose, use_encryption);
- compose_update_privacy_system_menu_item(compose);
+ compose_update_privacy_system_menu_item(compose, FALSE);
} else {
- activate_privacy_system(compose, account);
+ activate_privacy_system(compose, account, FALSE);
}
compose->targetinfo = procmsg_msginfo_copy(msginfo);
SET_ADDRESS(COMPOSE_FOLLOWUPTO, compose->followup_to);
compose_update_priority_menu_item(compose);
- compose_update_privacy_system_menu_item(compose);
+ compose_update_privacy_system_menu_item(compose, FALSE);
compose_show_first_last_header(compose, TRUE);
}
else
menu_set_active(ifactory, "/Options/Encrypt", FALSE);
- activate_privacy_system(compose, account);
+ activate_privacy_system(compose, account, FALSE);
if (!init && compose->mode != COMPOSE_REDIRECT)
compose_insert_sig(compose, TRUE);
/* Privacy Systems menu */
compose_update_privacy_systems_menu(compose);
- activate_privacy_system(compose, account);
+ activate_privacy_system(compose, account, TRUE);
toolbar_set_style(compose->toolbar->toolbar, compose->handlebox, prefs_common.toolbar_style);
gtk_widget_show(window);
menu_set_sensitive(ifactory, "/Options/Encrypt", can_encrypt);
}
-static void compose_update_privacy_system_menu_item(Compose * compose)
+static void compose_update_privacy_system_menu_item(Compose * compose, gboolean warn)
{
static gchar *branch_path = "/Options/Privacy System";
GtkItemFactory *ifactory;
GtkWidget *menuitem = NULL;
GList *amenu;
gboolean can_sign = FALSE, can_encrypt = FALSE;
+ gboolean found = FALSE;
ifactory = gtk_item_factory_from_widget(compose->menubar);
can_sign = privacy_system_can_sign(systemid);
can_encrypt = privacy_system_can_encrypt(systemid);
-
+ found = TRUE;
break;
}
}
if (menuitem != NULL)
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menuitem), TRUE);
+
+ if (warn && !found && strlen(compose->privacy_system)) {
+ gchar *tmp = g_strdup_printf(
+ _("The privacy system '%s' cannot be loaded. You "
+ "will not be able to sign or encrypt this message."),
+ compose->privacy_system);
+ alertpanel_warning(tmp);
+ g_free(tmp);
+ }
}
menu_set_sensitive(ifactory, "/Options/Sign", can_sign);
{
Compose *compose = (Compose *)data;
- if (prefs_common.work_offline)
- if (alertpanel(_("Offline warning"),
- _("You're working offline. Override?"),
- GTK_STOCK_YES, GTK_STOCK_NO, NULL) != G_ALERTDEFAULT)
- return;
+ if (prefs_common.work_offline && !inc_offline_should_override())
+ return;
if (compose->draft_timeout_tag != -1) { /* CLAWS: disable draft timeout */
gtk_timeout_remove(compose->draft_timeout_tag);
if (compose->modified) {
val = alertpanel(_("Discard message"),
- _("This message has been modified. discard it?"),
- _("Discard"), _("to Draft"), GTK_STOCK_CANCEL);
+ _("This message has been modified. Discard it?"),
+ _("Discard"), _("Save to Drafts"), GTK_STOCK_CANCEL);
switch (val) {
case G_ALERTDEFAULT:
compose->use_encryption = FALSE;
}
-static void activate_privacy_system(Compose *compose, PrefsAccount *account)
+static void activate_privacy_system(Compose *compose, PrefsAccount *account, gboolean warn)
{
g_free(compose->privacy_system);
compose->privacy_system = g_strdup(account->default_privacy_system);
- compose_update_privacy_system_menu_item(compose);
+ compose_update_privacy_system_menu_item(compose, warn);
}
static void compose_toggle_ruler_cb(gpointer data, guint action,