[Xfce4-commits] <orage:master> 4.7.5.2 Alarm test

Juha Kautto noreply at xfce.org
Tue Dec 15 11:32:01 CET 2009


Updating branch refs/heads/master
         to e173bafacb9dea78c7c915291be41b96d5bec979 (commit)
       from 1774149c6d87d0b08738b8db76b666e1f177b8c3 (commit)

commit e173bafacb9dea78c7c915291be41b96d5bec979
Author: Juha Kautto <juha at xfce.org>
Date:   Tue Dec 15 12:29:14 2009 +0200

    4.7.5.2 Alarm test
    
    Possibility to test alarms immediately without creating and waiting.

 NEWS              |   12 +++++++++-
 configure.in.in   |    2 +-
 src/appointment.c |   55 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/appointment.h |    1 +
 src/reminder.c    |   30 +++++++++++++++-------------
 src/reminder.h    |    1 +
 6 files changed, 84 insertions(+), 17 deletions(-)

diff --git a/NEWS b/NEWS
index c73a8c2..eed0ce7 100644
--- a/NEWS
+++ b/NEWS
@@ -1,8 +1,16 @@
+20091215: Version 4.7.5.2
+---------
+        * Test option in alarm definition.
+
+20091208: Version 4.7.5
+---------
+        * Possible to use upsteam libical if available in the distro (Bug 5764).
+
 20091127: Minor enhancements to tray icon
 ---------
         * Better looking tray icon (bug 4667).
-        * Try icon Size is fully automatic so size parameters removed.
-        * Try icon tooltip better looking with colour and bold time.
+        * Tray icon size is fully automatic so size parameters removed.
+        * Tray icon tooltip better looking with colour and bold time.
 
 20091030: Minor enhancements
 ---------
diff --git a/configure.in.in b/configure.in.in
index 43f0b84..c277e0b 100644
--- a/configure.in.in
+++ b/configure.in.in
@@ -9,7 +9,7 @@ dnl Written for Xfce by Juha Kautto <juha at xfce.org>
 dnl
 
 dnl Version information
-m4_define([orage_version], [4.7.5.1-git])
+m4_define([orage_version], [4.7.5.2-git])
 
 m4_define([gtk_minimum_version], [2.10.0])
 m4_define([xfce_minimum_version], [4.6.0])
diff --git a/src/appointment.c b/src/appointment.c
index 11845bd..7c4a592 100644
--- a/src/appointment.c
+++ b/src/appointment.c
@@ -55,6 +55,7 @@
 #include "day-view.h"
 #include "appointment.h"
 #include "parameters.h"
+#include "reminder.h"
 
 #define BORDER_SIZE 20
 #define FILETYPE_SIZE 38
@@ -1670,6 +1671,10 @@ static xfical_appt *fill_appt_window_get_appt(appt_win *apptw
     }
     else if ((strcmp(action, "UPDATE") == 0) || (strcmp(action, "COPY") == 0)) {
         /* par contains ical uid */
+        if (!par) {
+            orage_message(10, "%s appointment with null id. Ending.", action);
+            return(NULL);
+        }
         if (!xfical_file_open(TRUE))
             return(NULL);
         if ((appt = xfical_appt_get(par)) == NULL) {
@@ -2485,6 +2490,46 @@ static void read_default_alarm(xfical_appt *appt)
     orage_rc_file_close(orc);
 }
 
+static void on_test_button_clicked_cb(GtkButton *button
+        , gpointer user_data)
+{
+    appt_win *apptw = (appt_win *)user_data;
+    xfical_appt *appt = (xfical_appt *)apptw->xf_appt;
+    alarm_struct cur_alarm;
+
+    fill_appt_from_apptw(appt, apptw);
+
+    /* no need for alarm time as we are doing this now */
+    if (appt->uid)
+        cur_alarm.uid = g_strdup(appt->uid);
+    else
+        cur_alarm.uid = NULL;
+    cur_alarm.title = g_strdup(appt->title);
+    cur_alarm.description = g_strdup(appt->note);
+    cur_alarm.display_orage = appt->display_alarm_orage;
+    cur_alarm.display_notify = appt->display_alarm_notify;
+    cur_alarm.notify_refresh = TRUE; /* not needed ? */
+    cur_alarm.notify_timeout = appt->display_notify_timeout;
+    cur_alarm.audio = appt->sound_alarm;
+    if (appt->sound)
+        cur_alarm.sound = g_strdup(appt->sound);
+    else 
+        cur_alarm.sound = NULL;
+    cur_alarm.repeat_cnt = appt->soundrepeat_cnt;
+    cur_alarm.repeat_delay = appt->soundrepeat_len;
+    cur_alarm.procedure = appt->procedure_alarm;
+    if (appt->procedure_alarm)
+        cur_alarm.cmd = g_strdup(appt->procedure_cmd);
+    else
+        cur_alarm.cmd = NULL;
+    create_reminders(&cur_alarm);
+    g_free(cur_alarm.uid);
+    g_free(cur_alarm.title);
+    g_free(cur_alarm.description);
+    g_free(cur_alarm.sound);
+    g_free(cur_alarm.cmd);
+}
+
 static void on_appDefault_save_button_clicked_cb(GtkButton *button
         , gpointer user_data)
 {
@@ -3015,6 +3060,13 @@ static void build_alarm_page(appt_win *apptw)
             , apptw->Proc_label, apptw->Proc_hbox
             , ++row, (GTK_FILL), (GTK_FILL));
 
+    /***** Test Alarm *****/
+    gtk_box_pack_start(GTK_BOX(vbox), gtk_hseparator_new(), FALSE, FALSE, 3);
+    apptw->Test_button = gtk_button_new_from_stock("gtk-execute");
+    gtk_tooltips_set_tip(apptw->Tooltips, apptw->Test_button
+            , _("Test this alarm by raising it now"), NULL);
+    gtk_box_pack_start(GTK_BOX(vbox), apptw->Test_button, FALSE, FALSE, 0);
+
     /***** Default Alarm Settings *****/
     apptw->Default_hbox = gtk_hbox_new(FALSE, 6);
     apptw->Default_label = gtk_label_new(NULL);
@@ -3080,6 +3132,9 @@ static void enable_alarm_page_signals(appt_win *apptw)
     g_signal_connect((gpointer)apptw->Proc_entry, "changed"
             , G_CALLBACK(on_app_entry_changed_cb), apptw);
 
+    g_signal_connect((gpointer)apptw->Test_button, "clicked"
+            , G_CALLBACK(on_test_button_clicked_cb), apptw);
+
     g_signal_connect((gpointer)apptw->Default_savebutton, "clicked"
             , G_CALLBACK(on_appDefault_save_button_clicked_cb), apptw);
     g_signal_connect((gpointer)apptw->Default_readbutton, "clicked"
diff --git a/src/appointment.h b/src/appointment.h
index 35c436d..db7d439 100644
--- a/src/appointment.h
+++ b/src/appointment.h
@@ -147,6 +147,7 @@ typedef struct _appt_win
     GtkWidget *Proc_hbox;
     GtkWidget *Proc_checkbutton;
     GtkWidget *Proc_entry;
+    GtkWidget *Test_button;;
     GtkWidget *Default_label;
     GtkWidget *Default_hbox;
     GtkWidget *Default_savebutton;
diff --git a/src/reminder.c b/src/reminder.c
index a1526fc..0fcf089 100644
--- a/src/reminder.c
+++ b/src/reminder.c
@@ -61,7 +61,7 @@
 */
 
 static void create_notify_reminder(alarm_struct *alarm);
-static void create_reminders(alarm_struct *alarm);
+void create_reminders(alarm_struct *alarm);
 static void reset_orage_alarm_clock();
 
 static void alarm_free(gpointer galarm, gpointer dummy)
@@ -437,9 +437,10 @@ static void create_notify_reminder(alarm_struct *alarm)
     else
         notify_notification_set_timeout(n, alarm->notify_timeout*1000);
 
-    notify_notification_add_action(n, "open", _("Open")
-            , (NotifyActionCallback)notify_action_open
-            , alarm, NULL);
+    if (alarm->uid) 
+        notify_notification_add_action(n, "open", _("Open")
+                , (NotifyActionCallback)notify_action_open
+                , alarm, NULL);
     if ((alarm->audio) && (alarm->repeat_cnt > 1)) {
         notify_notification_add_action(n, "stop", "Silence"
                 , (NotifyActionCallback)notify_action_silence
@@ -560,18 +561,19 @@ static void create_orage_reminder(alarm_struct *alarm)
     gtk_dialog_set_has_separator(GTK_DIALOG(wReminder), FALSE);
     gtk_button_box_set_layout(GTK_BUTTON_BOX(daaReminder), GTK_BUTTONBOX_END);
 
-    btOpenReminder = gtk_button_new_from_stock("gtk-open");
-    gtk_dialog_add_action_widget(GTK_DIALOG(wReminder), btOpenReminder
-            , GTK_RESPONSE_OK);
+    if (alarm->uid) {
+        btOpenReminder = gtk_button_new_from_stock("gtk-open");
+        gtk_dialog_add_action_widget(GTK_DIALOG(wReminder), btOpenReminder
+                , GTK_RESPONSE_OK);
+        g_signal_connect((gpointer) btOpenReminder, "clicked"
+                , G_CALLBACK(on_btOpenReminder_clicked), alarm);
+    }
 
     btOkReminder = gtk_button_new_from_stock("gtk-close");
     gtk_dialog_add_action_widget(GTK_DIALOG(wReminder), btOkReminder
             , GTK_RESPONSE_OK);
     GTK_WIDGET_SET_FLAGS(btOkReminder, GTK_CAN_DEFAULT);
 
-    g_signal_connect((gpointer) btOpenReminder, "clicked"
-            , G_CALLBACK(on_btOpenReminder_clicked), alarm);
-
     g_signal_connect((gpointer) btOkReminder, "clicked"
             , G_CALLBACK(on_btOkReminder_clicked), wReminder);
 
@@ -612,7 +614,7 @@ static void create_procedure_reminder(alarm_struct *alarm)
     g_free(cmd);
 }
 
-static void create_reminders(alarm_struct *alarm)
+void create_reminders(alarm_struct *alarm)
 {
 #undef P_N
 #define P_N "create_reminders: "
@@ -809,7 +811,7 @@ static void reset_orage_alarm_clock()
 }
 
 /* refresh trayicon tooltip once per minute */
-gboolean orage_tooltip_update(gpointer user_data)
+static gboolean orage_tooltip_update(gpointer user_data)
 {
 #undef P_N
 #define P_N "orage_tooltip_update: "
@@ -897,7 +899,7 @@ gboolean orage_tooltip_update(gpointer user_data)
 }
 
 /* start timer to fire every minute to keep tooltip accurate */
-gboolean start_orage_tooltip_update(gpointer user_data)
+static gboolean start_orage_tooltip_update(gpointer user_data)
 {
 #undef P_N
 #define P_N "start_orage_tooltip_update: "
@@ -916,7 +918,7 @@ gboolean start_orage_tooltip_update(gpointer user_data)
 }
 
 /* adjust the call to happen when minute changes */
-gboolean reset_orage_tooltip_update()
+static gboolean reset_orage_tooltip_update()
 {
 #undef P_N
 #define P_N "reset_orage_tooltip_update: "
diff --git a/src/reminder.h b/src/reminder.h
index 29880a5..93b98f4 100644
--- a/src/reminder.h
+++ b/src/reminder.h
@@ -64,5 +64,6 @@ void reset_orage_day_change(gboolean changed);
 void setup_orage_alarm_clock(void);
 void alarm_read();
 void alarm_list_free();
+void create_reminders(alarm_struct *alarm);
 
 #endif /* !__REMINDER_H__ */



More information about the Xfce4-commits mailing list