Argh... when I do stupid errors like that it means i need sleep.
Sorry for the spam... here's a proper patch.

The path to ~/.config/autostart/ was wrong.

I'll goto bed instead of doing other errors. ttyl.

-Pascal
--
Homepage (http://organact.mine.nu)
Debian GNU/Linux (http://www.debian.org)
--- src/mn-conf.h.old   2006-05-18 09:23:42.000000000 -0400
+++ src/mn-conf.h       2006-08-23 01:16:16.000000000 -0400
@@ -89,6 +89,8 @@
   MN_CONF_MAIL_SUMMARY_POPUP_FONTS_CONTENTS_NAMESPACE "/font"
 #define MN_CONF_DISPLAY_SEEN_MAIL \
   MN_CONF_NAMESPACE "/display-seen-mail"
+#define MN_CONF_AUTOSTART \
+  MN_CONF_NAMESPACE "/autostart-mn"
 #define MN_CONF_TOOLTIP_MAIL_SUMMARY \
   MN_CONF_NAMESPACE "/tooltip-mail-summary"
 #define MN_CONF_ALWAYS_DISPLAY_ICON \
--- src/mn-properties-dialog.gob.old    2006-05-18 09:23:42.000000000 -0400
+++ src/mn-properties-dialog.gob        2006-08-23 02:25:18.000000000 -0400
@@ -48,6 +48,7 @@
 
   /* general tab */
   private GtkWidget *display_seen_mail_check;
+  private GtkWidget *autostart_mn;
   private GtkWidget *scrolled;
   private GtkWidget *list;
   private GtkWidget *selected_label;
@@ -122,6 +123,7 @@
                                  "mn_properties_dialog_",
                                  "notebook", &selfp->notebook,
                                  "display_seen_mail_check", 
&selfp->display_seen_mail_check,
+                                 "autostart_mn", &selfp->autostart_mn,
                                  "scrolled", &selfp->scrolled,
                                  "selected_label", &selfp->selected_label,
                                  "remove", &selfp->remove,
@@ -220,6 +222,7 @@
 
     mn_conf_link(self, MN_CONF_PROPERTIES_DIALOG,
                 selfp->display_seen_mail_check, MN_CONF_DISPLAY_SEEN_MAIL, 
"active",
+                selfp->autostart_mn, MN_CONF_AUTOSTART, "active",
                 selfp->command_new_mail_check, 
MN_CONF_COMMANDS_NEW_MAIL_ENABLED, "active",
                 selfp->command_new_mail_entry, 
MN_CONF_COMMANDS_NEW_MAIL_COMMAND, "text",
                 selfp->command_mail_read_check, 
MN_CONF_COMMANDS_MAIL_READ_ENABLED, "active",
@@ -412,6 +415,32 @@
   }
 
   protected void
+    autostart_mn_toggled_h (self, GtkButton *button)
+  {
+    // Freedesktop.org standard for autostarting applications
+    const char *filename = "~/.config/autostart/mail-notification.desktop";
+    FILE *file;
+
+    // Create the desktop file
+    if( gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->autostart_mn)) ){
+
+      if ((file = fopen( filename, "wt")) == NULL) {
+        fprintf( stderr, "Can't create autostart file: %s", filename );
+      }
+      fprintf( file, "[Desktop Entry]\n" );
+      fprintf( file, "Name=mail-notification\n" );
+      fprintf( file, "Encoding=UTF-8\n" );
+      fprintf( file, "Version=1.0\n" );
+      fprintf( file, "Exec=mail-notification --sm-disable\n\n" );
+      fclose( file );
+    } else {
+      if( unlink( filename ) != 0 ) {
+        printf( "Failed to delete %s\n", filename );
+      }
+    }
+  }
+
+  protected void
     add_clicked_h (self, GtkButton *button)
   {
     mn_mailbox_view_activate_add(MN_MAILBOX_VIEW(selfp->list));
--- ui/properties-dialog.glade.old      2006-05-03 21:32:03.000000000 -0400
+++ ui/properties-dialog.glade  2006-08-23 01:27:17.000000000 -0400
@@ -2,7 +2,6 @@
 <!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd";>
 
 <glade-interface>
-<requires lib="gnome"/>
 
 <widget class="GtkDialog" id="dialog">
   <property name="border_width">5</property>
@@ -125,6 +124,26 @@
                              <property name="fill">False</property>
                            </packing>
                          </child>
+
+                         <child>
+                           <widget class="GtkCheckButton" id="autostart_mn">
+                             <property name="visible">True</property>
+                             <property name="can_focus">True</property>
+                             <property name="label" 
translatable="yes">Autostart mail-notification at startup</property>
+                             <property name="use_underline">True</property>
+                             <property 
name="relief">GTK_RELIEF_NORMAL</property>
+                             <property name="focus_on_click">True</property>
+                             <property name="active">False</property>
+                             <property name="inconsistent">False</property>
+                             <property name="draw_indicator">True</property>
+                             <signal name="toggled" 
handler="autostart_mn_toggled_h" last_modification_time="Wed, 23 Aug 2006 
05:19:55 GMT"/>
+                           </widget>
+                           <packing>
+                             <property name="padding">0</property>
+                             <property name="expand">False</property>
+                             <property name="fill">False</property>
+                           </packing>
+                         </child>
                        </widget>
                      </child>
                    </widget>

Reply via email to