[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