set the new-mail-notify command.
2001-12-12 Jeffrey Stedfast <fejj@ximian.com> * mail-config.c (mail_config_set_new_mail_notification_command): set the new-mail-notify command. (mail_config_get_new_mail_notification_command): get the new-mail-notify command. (mail_config_set_new_mail_notification): set the new-mail-notification action. (mail_config_get_new_mail_notification): get the new-mail-notification action. (mail_config_write_on_exit): save the new-mail-notification settings. (config_read): Read in the new-mail-notification settings. * mail-ops.c (mail_execute_shell_command): New function to execute a shell command async. Will be used for playing sounds on new mail or whatever. svn path=/trunk/; revision=15005
This commit is contained in:

committed by
Jeffrey Stedfast

parent
39d4313c30
commit
3622e520dd
@ -1,3 +1,21 @@
|
||||
2001-12-12 Jeffrey Stedfast <fejj@ximian.com>
|
||||
|
||||
* mail-config.c (mail_config_set_new_mail_notification_command):
|
||||
set the new-mail-notify command.
|
||||
(mail_config_get_new_mail_notification_command): get the
|
||||
new-mail-notify command.
|
||||
(mail_config_set_new_mail_notification): set the
|
||||
new-mail-notification action.
|
||||
(mail_config_get_new_mail_notification): get the
|
||||
new-mail-notification action.
|
||||
(mail_config_write_on_exit): save the new-mail-notification
|
||||
settings.
|
||||
(config_read): Read in the new-mail-notification settings.
|
||||
|
||||
* mail-ops.c (mail_execute_shell_command): New function to execute
|
||||
a shell command async. Will be used for playing sounds on new mail
|
||||
or whatever.
|
||||
|
||||
2001-12-11 Jon Trowbridge <trow@ximian.com>
|
||||
|
||||
* mail-identify.c (mail_identify_mime_part): Fixed for
|
||||
|
@ -106,6 +106,9 @@ typedef struct {
|
||||
|
||||
gboolean filter_log;
|
||||
char *filter_log_path;
|
||||
|
||||
MailConfigNewMailNotification notify;
|
||||
char *notify_command;
|
||||
} MailConfig;
|
||||
|
||||
static MailConfig *config = NULL;
|
||||
@ -607,6 +610,14 @@ config_read (void)
|
||||
|
||||
config->filter_log_path = bonobo_config_get_string (
|
||||
config->db, "/Mail/Filters/log_path", NULL);
|
||||
|
||||
/* New Mail Notification */
|
||||
config->notify = bonobo_config_get_long_with_default (
|
||||
config->db, "/Mail/Notify/new_mail_notification",
|
||||
MAIL_CONFIG_NEW_MAIL_NOTIFICATION_NONE, NULL);
|
||||
|
||||
config->notify_command = bonobo_config_get_string (
|
||||
config->db, "/Mail/Notify/new_mail_notification_command", NULL);
|
||||
}
|
||||
|
||||
#define bonobo_config_set_string_wrapper(db, path, val, ev) bonobo_config_set_string (db, path, val ? val : "", ev)
|
||||
@ -886,7 +897,14 @@ mail_config_write_on_exit (void)
|
||||
|
||||
bonobo_config_set_string_wrapper (config->db, "/Mail/Filters/log_path",
|
||||
config->filter_log_path, NULL);
|
||||
|
||||
|
||||
/* New Mail Notification */
|
||||
bonobo_config_set_long (config->db, "/Mail/Notify/new_mail_notification",
|
||||
config->notify, NULL);
|
||||
|
||||
bonobo_config_set_string_wrapper (config->db, "/Mail/Notify/new_mail_notification_command",
|
||||
config->notify_command, NULL);
|
||||
|
||||
if (config->threaded_hash)
|
||||
g_hash_table_foreach_remove (config->threaded_hash, hash_save_state, "Threads");
|
||||
|
||||
@ -898,7 +916,7 @@ mail_config_write_on_exit (void)
|
||||
CORBA_exception_free (&ev);
|
||||
|
||||
/* Passwords */
|
||||
|
||||
|
||||
/* then we make sure the ones we want to remember are in the
|
||||
session cache */
|
||||
accounts = mail_config_get_accounts ();
|
||||
@ -919,21 +937,21 @@ mail_config_write_on_exit (void)
|
||||
g_free (passwd);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* then we clear out our component passwords */
|
||||
e_passwords_clear_component_passwords ();
|
||||
|
||||
|
||||
/* then we remember them */
|
||||
accounts = mail_config_get_accounts ();
|
||||
for ( ; accounts; accounts = accounts->next) {
|
||||
account = accounts->data;
|
||||
if (account->source->save_passwd && account->source->url)
|
||||
mail_session_remember_password (account->source->url);
|
||||
|
||||
|
||||
if (account->transport->save_passwd && account->transport->url)
|
||||
mail_session_remember_password (account->transport->url);
|
||||
}
|
||||
|
||||
|
||||
/* now do cleanup */
|
||||
mail_config_clear ();
|
||||
}
|
||||
@ -1610,6 +1628,30 @@ mail_config_set_default_charset (const char *charset)
|
||||
config->default_charset = g_strdup (charset);
|
||||
}
|
||||
|
||||
MailConfigNewMailNotification
|
||||
mail_config_get_new_mail_notification (void)
|
||||
{
|
||||
return config->notify;
|
||||
}
|
||||
|
||||
void
|
||||
mail_config_set_new_mail_notification (MailConfigNewMailNotification type)
|
||||
{
|
||||
config->notify = type;
|
||||
}
|
||||
|
||||
const char *
|
||||
mail_config_get_new_mail_notification_command (void)
|
||||
{
|
||||
return config->notify_command;
|
||||
}
|
||||
|
||||
void
|
||||
mail_config_set_new_mail_notification_command (const char *command)
|
||||
{
|
||||
g_free (config->notify_command);
|
||||
config->notify_command = g_strdup (command);
|
||||
}
|
||||
|
||||
gboolean
|
||||
mail_config_find_account (const MailConfigAccount *account)
|
||||
|
@ -87,6 +87,12 @@ typedef enum {
|
||||
MAIL_CONFIG_DISPLAY_MAX
|
||||
} MailConfigDisplayStyle;
|
||||
|
||||
typedef enum {
|
||||
MAIL_CONFIG_NEW_MAIL_NOTIFICATION_NONE,
|
||||
MAIL_CONFIG_NEW_MAIL_NOTIFICATION_BEEP,
|
||||
MAIL_CONFIG_NEW_MAIL_NOTIFICATION_COMMAND,
|
||||
} MailConfigNewMailNotification;
|
||||
|
||||
/* Identities */
|
||||
MailConfigIdentity *identity_copy (const MailConfigIdentity *id);
|
||||
void identity_destroy (MailConfigIdentity *id);
|
||||
@ -175,6 +181,11 @@ void mail_config_set_default_forward_style (MailConfigForwardS
|
||||
MailConfigDisplayStyle mail_config_get_message_display_style (void);
|
||||
void mail_config_set_message_display_style (MailConfigDisplayStyle style);
|
||||
|
||||
MailConfigNewMailNotification mail_config_get_new_mail_notification (void);
|
||||
void mail_config_set_new_mail_notification (MailConfigNewMailNotification type);
|
||||
const char *mail_config_get_new_mail_notification_command (void);
|
||||
void mail_config_set_new_mail_notification_command (const char *command);
|
||||
|
||||
const char *mail_config_get_default_charset (void);
|
||||
void mail_config_set_default_charset (const char *charset);
|
||||
|
||||
|
@ -30,6 +30,7 @@
|
||||
|
||||
/* #include <ctype.h> */
|
||||
#include <errno.h>
|
||||
#include <gnome.h>
|
||||
#include <gal/util/e-util.h>
|
||||
#include <gal/widgets/e-unicode.h>
|
||||
#include <gal/util/e-unicode-i18n.h>
|
||||
@ -2170,3 +2171,57 @@ mail_store_set_offline (CamelStore *store, gboolean offline,
|
||||
|
||||
e_thread_put(mail_thread_queued, (EMsg *)m);
|
||||
}
|
||||
|
||||
|
||||
/* ** Execute Shell Command ***************************************************** */
|
||||
|
||||
struct _execute_shell_command_msg {
|
||||
struct _mail_msg msg;
|
||||
|
||||
char *command;
|
||||
};
|
||||
|
||||
static char *execute_shell_command_desc (struct _mail_msg *mm, int done)
|
||||
{
|
||||
struct _execute_shell_command_msg *m = (struct _execute_shell_command_msg *) mm;
|
||||
char *msg;
|
||||
|
||||
msg = g_strdup_printf (_("Executing shell command: %s"), m->command);
|
||||
|
||||
return msg;
|
||||
}
|
||||
|
||||
static void execute_shell_command_do (struct _mail_msg *mm)
|
||||
{
|
||||
struct _execute_shell_command_msg *m = (struct _execute_shell_command_msg *) mm;
|
||||
|
||||
gnome_execute_shell (NULL, m->command);
|
||||
}
|
||||
|
||||
static void execute_shell_command_free (struct _mail_msg *mm)
|
||||
{
|
||||
struct _execute_shell_command_msg *m = (struct _execute_shell_command_msg *) mm;
|
||||
|
||||
g_free (m->command);
|
||||
}
|
||||
|
||||
static struct _mail_msg_op execute_shell_command_op = {
|
||||
execute_shell_command_desc,
|
||||
execute_shell_command_do,
|
||||
NULL,
|
||||
execute_shell_command_free,
|
||||
};
|
||||
|
||||
void
|
||||
mail_execute_shell_command (const char *command)
|
||||
{
|
||||
struct _execute_shell_command_msg *m;
|
||||
|
||||
if (command == NULL)
|
||||
return;
|
||||
|
||||
m = mail_msg_new (&execute_shell_command_op, NULL, sizeof (*m));
|
||||
m->command = g_strdup (command);
|
||||
|
||||
e_thread_put (mail_thread_queued, (EMsg *) m);
|
||||
}
|
||||
|
@ -150,6 +150,8 @@ void mail_store_set_offline (CamelStore *store, gboolean offline,
|
||||
void (*done)(CamelStore *, void *data),
|
||||
void *data);
|
||||
|
||||
void mail_execute_shell_command (const char *command);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
|
Reference in New Issue
Block a user