← Back to team overview

cairo-dock-team team mailing list archive

[Merge] lp:~chris-chapuis/cairo-dock-plug-ins/mail into lp:cairo-dock-plug-ins

 

Tofe has proposed merging lp:~chris-chapuis/cairo-dock-plug-ins/mail into lp:cairo-dock-plug-ins.

    Requested reviews:
    Tofe (chris-chapuis)


more options for mail: don't show quicktext when no mail, and possiblity to specify a mail app per account
-- 
https://code.launchpad.net/~chris-chapuis/cairo-dock-plug-ins/mail/+merge/18764
Your team Cairo-Dock Team is subscribed to branch lp:cairo-dock-plug-ins.
=== modified file 'mail/data/mail.conf.in'
--- mail/data/mail.conf.in	2010-01-25 00:54:46 +0000
+++ mail/data/mail.conf.in	2010-02-06 16:45:23 +0000
@@ -138,6 +138,9 @@
 #{If you have any problem with the applet, uncheck this option during the maintenance mode, then let the dock launch itself, and remove/modify the mail accounts you want.}
 check = true
 
+#b Always show number of mails
+#{If checked, the number of mails will be shown even if there is no mail.}
+show zero mail = true
 
 #X[Mail application] 
 frame_appli =

=== modified file 'mail/src/cd-mail-applet-accounts.c'
--- mail/src/cd-mail-applet-accounts.c	2010-01-25 23:45:56 +0000
+++ mail/src/cd-mail-applet-accounts.c	2010-02-06 16:45:23 +0000
@@ -35,7 +35,7 @@
 		pIcon->fAlpha = 1.;\
 		pIcon->fWidthFactor = 1.;\
 		pIcon->fHeightFactor = 1.;\
-		pIcon->cCommand = g_strdup ("none");\
+		pIcon->cCommand = g_strdup (pMailAccount->cMailApp);\
 		pIcon->cParentDockName = g_strdup (myIcon->cName);\
 		cd_debug (" + %s (%s)\n", pIcon->cName, pIcon->cFileName);\
 		pIconList = g_list_append (pIconList, pIcon);\
@@ -63,6 +63,9 @@
 
 	g_key_file_set_integer (pKeyFile, pMailAccountName, "timeout mn", 10);
 	g_key_file_set_comment (pKeyFile, pMailAccountName, "timeout mn", "I0[1;30] timeout:\n{In minutes.}", NULL);
+
+	g_key_file_set_string (pKeyFile, pMailAccountName, "mail application", "");
+	g_key_file_set_comment (pKeyFile, pMailAccountName, "mail application", "s0 specific mail application\n{Leave this field empty to use the default mail application.}", NULL);
 }
 
 void cd_mail_retrieve_pop3_params (CDMailAccount *mailaccount, GKeyFile *pKeyFile, gchar *mailbox_name)
@@ -129,6 +132,9 @@
 
 	g_key_file_set_integer (pKeyFile, pMailAccountName, "timeout mn", 10);
 	g_key_file_set_comment (pKeyFile, pMailAccountName, "timeout mn", "I0[1;30] timeout:\n{In minutes.}", NULL);
+
+	g_key_file_set_string (pKeyFile, pMailAccountName, "mail application", "");
+	g_key_file_set_comment (pKeyFile, pMailAccountName, "mail application", "s0 specific mail application\n{Leave this field empty to use the default mail application.}", NULL);
 }
 
 void cd_mail_retrieve_imap_params (CDMailAccount *mailaccount, GKeyFile *pKeyFile, gchar *mailbox_name)
@@ -187,6 +193,9 @@
 
 	g_key_file_set_integer (pKeyFile, pMailAccountName, "timeout mn", 10);
 	g_key_file_set_comment (pKeyFile, pMailAccountName, "timeout mn", "I0[1;30] timeout:\n{In minutes.}", NULL);
+
+	g_key_file_set_string (pKeyFile, pMailAccountName, "mail application", "");
+	g_key_file_set_comment (pKeyFile, pMailAccountName, "mail application", "s0 specific mail application\n{Leave this field empty to use the default mail application.}", NULL);
 }
 
 void cd_mail_retrieve_mbox_params (CDMailAccount *mailaccount, GKeyFile *pKeyFile, gchar *mailbox_name)
@@ -221,6 +230,9 @@
 
 	g_key_file_set_integer (pKeyFile, pMailAccountName, "timeout mn", 10);
 	g_key_file_set_comment (pKeyFile, pMailAccountName, "timeout mn", "I0[1;30] timeout:\n{In minutes.}", NULL);
+
+	g_key_file_set_string (pKeyFile, pMailAccountName, "mail application", "");
+	g_key_file_set_comment (pKeyFile, pMailAccountName, "mail application", "s0 specific mail application\n{Leave this field empty to use the default mail application.}", NULL);
 }
 
 void cd_mail_retrieve_mh_params (CDMailAccount *mailaccount, GKeyFile *pKeyFile, gchar *mailbox_name)
@@ -254,6 +266,9 @@
 
 	g_key_file_set_integer (pKeyFile, pMailAccountName, "timeout mn", 10);
 	g_key_file_set_comment (pKeyFile, pMailAccountName, "timeout mn", "I0[1;30] timeout:\n{In minutes.}", NULL);
+
+	g_key_file_set_string (pKeyFile, pMailAccountName, "mail application", "");
+	g_key_file_set_comment (pKeyFile, pMailAccountName, "mail application", "s0 specific mail application\n{Leave this field empty to use the default mail application.}", NULL);
 }
 
 void cd_mail_retrieve_maildir_params (CDMailAccount *mailaccount, GKeyFile *pKeyFile, gchar *mailbox_name)
@@ -296,6 +311,9 @@
 
 	g_key_file_set_integer (pKeyFile, pMailAccountName, "timeout mn", 10);
 	g_key_file_set_comment (pKeyFile, pMailAccountName, "timeout mn", "I0[1;30] timeout:\n{In minutes.}", NULL);
+
+	g_key_file_set_string (pKeyFile, pMailAccountName, "mail application", "");
+	g_key_file_set_comment (pKeyFile, pMailAccountName, "mail application", "s0 specific mail application\n{Leave this field empty to use the default mail application.}", NULL);
 }
 
 void cd_mail_retrieve_gmail_params (CDMailAccount *mailaccount, GKeyFile *pKeyFile, gchar *mailbox_name)
@@ -397,6 +415,9 @@
 
 	g_key_file_set_integer (pKeyFile, pMailAccountName, "timeout mn", 10);
 	g_key_file_set_comment (pKeyFile, pMailAccountName, "timeout mn", "I0[1;30] timeout:\n{In minutes.}", NULL);
+
+	g_key_file_set_string (pKeyFile, pMailAccountName, "mail application", "");
+	g_key_file_set_comment (pKeyFile, pMailAccountName, "mail application", "s0 specific mail application\n{Leave this field empty to use the default mail application.}", NULL);
 }
 
 void cd_mail_retrieve_feed_params (CDMailAccount *mailaccount, GKeyFile *pKeyFile, gchar *mailbox_name)
@@ -561,6 +582,7 @@
 	g_free( pMailAccount->user );
 	g_free( pMailAccount->password );
 	g_free( pMailAccount->path );
+	g_free( pMailAccount->cMailApp );
 
 	if( pMailAccount->folder )
 		mailfolder_free(pMailAccount->folder);

=== modified file 'mail/src/cd-mail-applet-config.c'
--- mail/src/cd-mail-applet-config.c	2009-12-17 00:56:42 +0000
+++ mail/src/cd-mail-applet-config.c	2010-02-06 16:45:23 +0000
@@ -110,6 +110,9 @@
 		
 		pMailAccount->pAppletInstance = myApplet;
 		(storage_tab[account_type].pfillFunc)( pMailAccount, pKeyFile, cMailAccountName );
+
+		/* get a specific mail application to launch for this account, if any */
+		pMailAccount->cMailApp = g_strdup(g_key_file_get_string (pKeyFile, cMailAccountName, "mail application", NULL));
 	}
 	g_strfreev (pGroupList);
 }
@@ -132,6 +135,7 @@
 	myConfig.bStealTaskBarIcon = myConfig.cMailApplication && CD_CONFIG_GET_BOOLEAN_WITH_DEFAULT ("Configuration", "inhibate appli", TRUE);
 	myConfig.bShowMessageContent = CD_CONFIG_GET_BOOLEAN_WITH_DEFAULT ("Configuration", "show content", TRUE);
 	myConfig.iNbMaxShown = CD_CONFIG_GET_INTEGER_WITH_DEFAULT ("Configuration", "max shown mails", -1);
+	myConfig.bAlwaysShowMailCount = CD_CONFIG_GET_BOOLEAN_WITH_DEFAULT ("Configuration", "show zero mail", TRUE);
 	//myConfig.bShowMessageContent = FALSE;
 	
 	myConfig.cThemePath = CD_CONFIG_GET_THEME_PATH ("Configuration", "theme", "themes", "Default");

=== modified file 'mail/src/cd-mail-applet-etpan.c'
--- mail/src/cd-mail-applet-etpan.c	2010-01-25 23:45:56 +0000
+++ mail/src/cd-mail-applet-etpan.c	2010-02-06 16:45:23 +0000
@@ -287,7 +287,14 @@
 	}
 	else
 	{
-		cairo_dock_set_quick_info (myDrawContext, pIcon, pContainer, "0");
+		if( myConfig.bAlwaysShowMailCount )
+		{
+			cairo_dock_set_quick_info (myDrawContext, pIcon, pContainer, "0");
+		}
+		else
+		{
+			cairo_dock_remove_quick_info(pIcon);
+		}
 		
 		cairo_dock_set_image_on_icon (pIconContext, myConfig.cNoMailUserImage, pIcon, pContainer);
 	}

=== modified file 'mail/src/cd-mail-applet-notifications.c'
--- mail/src/cd-mail-applet-notifications.c	2010-01-25 23:45:56 +0000
+++ mail/src/cd-mail-applet-notifications.c	2010-02-06 16:45:23 +0000
@@ -41,12 +41,19 @@
 		}
 		else
 		{
-			gboolean r = cairo_dock_launch_command (myConfig.cMailApplication);
+			/* if a specific mail application has been specified for this account, use this one */
+			gchar *cMailAppToLaunch = myConfig.cMailApplication;
+			if( CD_APPLET_CLICKED_ICON && CD_APPLET_CLICKED_ICON->cCommand &&
+			    strlen(CD_APPLET_CLICKED_ICON->cCommand)>0)
+			{
+				cMailAppToLaunch = CD_APPLET_CLICKED_ICON->cCommand;
+			}
+			gboolean r = cairo_dock_launch_command (cMailAppToLaunch);
 			
 			if (!r)
 			{
-				cd_warning ("when couldn't execute '%s'", myConfig.cMailApplication);
-				cairo_dock_show_temporary_dialog_with_icon_printf (D_("A problem occured\nIf '%s' is not your usual mail application,\nyou can change it in the conf panel of this module"), myIcon, myContainer, 5000, "same icon", myConfig.cMailApplication);
+				cd_warning ("when couldn't execute '%s'", cMailAppToLaunch);
+				cairo_dock_show_temporary_dialog_with_icon_printf (D_("A problem occured\nIf '%s' is not your usual mail application,\nyou can change it in the conf panel of this module"), myIcon, myContainer, 5000, "same icon", cMailAppToLaunch);
 			}
 		}
 	}

=== modified file 'mail/src/cd-mail-applet-struct.h'
--- mail/src/cd-mail-applet-struct.h	2009-10-12 17:19:04 +0000
+++ mail/src/cd-mail-applet-struct.h	2010-02-06 16:45:23 +0000
@@ -52,6 +52,7 @@
 	gboolean bCheckOnStartup;
 	guint iNbMaxShown;
 	gint iDialogDuration;
+	gboolean bAlwaysShowMailCount;
 } ;
 
 struct _AppletData {
@@ -95,6 +96,8 @@
     GList *pUnseenMessageList;  // liste de gchar*
     GList *pUnseenMessageUid;  // liste de gchar*
 
+    gchar *cMailApp;
+
     gboolean bError;
 } CDMailAccount;
 


References