[Xfce4-commits] <orage:master> fixed Bug 7552 - Orage reminder duplicates infinitely

Juha Kautto noreply at xfce.org
Wed Jun 1 14:32:01 CEST 2011


Updating branch refs/heads/master
         to 52a58e63cb039338d3365c83cb13e20acefba083 (commit)
       from 2baba1792e58fbb272eaeae351eb3f25b28c3173 (commit)

commit 52a58e63cb039338d3365c83cb13e20acefba083
Author: Juha Kautto <juha at xfce.org>
Date:   Wed Jun 1 15:26:22 2011 +0300

    fixed Bug 7552 - Orage reminder duplicates infinitely
    
    When using default timezone floating, reminders repeated and never ended.
    Fixed this and prevented using floating as the default value. Using UTC
    instead.

 configure.in.in          |    2 +-
 src/ical-code.c          |    4 ++--
 src/parameters.c         |   18 +++++++-----------
 src/timezone_selection.c |   35 +++++++++++++++++++++++++----------
 4 files changed, 35 insertions(+), 24 deletions(-)

diff --git a/configure.in.in b/configure.in.in
index a81439b..e28047e 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.8.1.0-git])
+m4_define([orage_version], [4.8.1.1-git])
 
 m4_define([gtk_minimum_version], [2.10.0])
 m4_define([xfce_minimum_version], [4.6.0])
diff --git a/src/ical-code.c b/src/ical-code.c
index c080bf2..e726103 100644
--- a/src/ical-code.c
+++ b/src/ical-code.c
@@ -233,7 +233,7 @@ gboolean xfical_set_local_timezone(gboolean testing)
 }
 
 /*
- * Basically standard says that timezone should be added alwasy
+ * Basically standard says that timezone should be added always
  * when it is used, but in real life these are not needed since
  * all systems have their own timezone data, so let's save time
  * and space and comment this out. 
@@ -2587,7 +2587,7 @@ static alarm_struct *process_alarm_trigger(icalcomponent *c
         rel = icalparameter_get_related(trg_related_par);
     else
         rel = ICAL_RELATED_START;
-    per = ic_get_period(c, FALSE);
+    per = ic_get_period(c, TRUE);
     next_alarm_time = count_alarm_time(per, cur_time, trg.duration, rel);
     alarm_start_diff = icaltime_subtract(per.stime, next_alarm_time);
     /* we only have ctime for TODOs and only if todo has been completed.
diff --git a/src/parameters.c b/src/parameters.c
index 38407da..462fce2 100644
--- a/src/parameters.c
+++ b/src/parameters.c
@@ -440,7 +440,7 @@ static void timezone_button_clicked(GtkButton *button, gpointer user_data)
 
     if (!ORAGE_STR_EXISTS(g_par.local_timezone)) {
         g_warning("timezone pressed: local timezone missing");
-        g_par.local_timezone = g_strdup("floating");
+        g_par.local_timezone = g_strdup("UTC");
     }
     if (orage_timezone_button_clicked(button, GTK_WINDOW(itf->orage_dialog)
             , &g_par.local_timezone, TRUE, g_par.local_timezone))
@@ -501,16 +501,12 @@ static void create_parameter_dialog_main_setup_tab(Itf *dialog)
             , dialog->timezone_frame, FALSE, FALSE, 5);
 
     dialog->timezone_button = gtk_button_new();
-    if (g_par.local_timezone) {
-        gtk_button_set_label(GTK_BUTTON(dialog->timezone_button)
-                , _(g_par.local_timezone));
-    }
-    else { /* we should never arrive here */
-        g_warning("parameters: timezone not set.");
-        g_par.local_timezone = g_strdup("floating");
-        gtk_button_set_label(GTK_BUTTON(dialog->timezone_button)
-                , _("floating"));
+    if (!ORAGE_STR_EXISTS(g_par.local_timezone)) {
+        g_warning("parameters: local timezone missing");
+        g_par.local_timezone = g_strdup("UTC");
     }
+    gtk_button_set_label(GTK_BUTTON(dialog->timezone_button)
+            , _(g_par.local_timezone));
     gtk_box_pack_start(GTK_BOX(vbox)
             , dialog->timezone_button, FALSE, FALSE, 5);
     gtk_tooltips_set_tip(dialog->Tooltips, dialog->timezone_button
@@ -1117,7 +1113,7 @@ static void init_default_timezone(void)
     if (ORAGE_STR_EXISTS(g_par.local_timezone))
         g_message(_("Default timezone set to %s."), g_par.local_timezone);
     else {
-        g_par.local_timezone = g_strdup("floating");
+        g_par.local_timezone = g_strdup("UTC");
         g_message(_("Default timezone not found, please, set it manually."));
     }
 }
diff --git a/src/timezone_selection.c b/src/timezone_selection.c
index 1bcb5be..518b83d 100644
--- a/src/timezone_selection.c
+++ b/src/timezone_selection.c
@@ -307,16 +307,31 @@ gboolean orage_timezone_button_clicked(GtkButton *button, GtkWindow *parent
     tree = tz_button_create_view(details, store);
 
     /* show it */
-    if (check_ical)
-        window =  gtk_dialog_new_with_buttons(_("Pick timezone")
-                , parent
-                , GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT
-                , _("Change mode"), 1
-                , _("UTC"), 2
-                , _("floating"), 3
-                , _(local_tz), 4
-                , GTK_STOCK_OK, GTK_RESPONSE_ACCEPT
-                , NULL);
+    if (check_ical) {
+        if (local_tz == *tz) 
+        /* We are actually setting the g_par parameter. In other words
+           we are setting the global default timezone for Orage. This is
+           done very seldom and we do not want to allow "floating" here.
+           This test is ugly, but it is not worth an extra parameter. */
+            window =  gtk_dialog_new_with_buttons(_("Pick timezone")
+                    , parent
+                    , GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT
+                    , _("Change mode"), 1
+                    , _("UTC"), 2
+                    , _(local_tz), 4
+                    , GTK_STOCK_OK, GTK_RESPONSE_ACCEPT
+                    , NULL);
+        else /* this is normal appointment */
+            window =  gtk_dialog_new_with_buttons(_("Pick timezone")
+                    , parent
+                    , GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT
+                    , _("Change mode"), 1
+                    , _("UTC"), 2
+                    , _("floating"), 3
+                    , _(local_tz), 4
+                    , GTK_STOCK_OK, GTK_RESPONSE_ACCEPT
+                    , NULL);
+    }
     else
         window =  gtk_dialog_new_with_buttons(_("Pick timezone")
                 , parent



More information about the Xfce4-commits mailing list