[planner: 43/61] planner-calendar: Drop and use GtkCalendar instead




commit cad636c46c329b074e273de7f55165b256f7c9ff
Author: Mart Raudsepp <leio gentoo org>
Date:   Fri Jan 1 17:27:36 2021 +0200

    planner-calendar: Drop and use GtkCalendar instead
    
    PlannerCalendar was GtkCalendar code copied from around October 2002,
    with different indentation and gtk_calendar_mark_day changed to support
    a specific mark type: NONE, BOLD, UNDERLINE, SHADE or STRIPE.
    It appears to most closely match GTK code of GtkCalendar at GTK commit
    fb6a7df846c6f553a2cd3387b12d0027bc986f43 and I have compared the code
    locally to indeed be identical to that GTK 2002 year state with different
    indent style and PlannerCalendarMarkType added to the mark setting and
    drawing functionality.
    
    With PlannerCalendar only NONE and SHADE were used, where NONE equals
    unmarked day in GTK version and SHADE is a grey background for the number
    to denote non-working day. Now a simple mark is used for non-working days
    for the time being, which results in a BOLD marking, which isn't ideal,
    but carrying a forked GtkDialog that hasn't been updated with changes in
    upstream gtk for almost 2 decades is worse.
    We can reintroduce separate styling later on top of modern GtkDialog
    code that gets re-imported and slightly modified, or even by figuring
    out a way to achieve it without bundling a slightly modified full copy.
    
    PlannerCalendar was also only used in "Manage Calendars" dialog, while
    all the other calendar usages already were GtkCalendar without any
    non-working days marking at all.

 src/meson.build                 |    1 -
 src/planner-calendar-dialog.c   |   44 +-
 src/planner-calendar-selector.c |    1 -
 src/planner-calendar.c          | 2759 ---------------------------------------
 src/planner-calendar.h          |  147 ---
 5 files changed, 20 insertions(+), 2932 deletions(-)
---
diff --git a/src/meson.build b/src/meson.build
index 2d3466a6..9bc1507a 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -4,7 +4,6 @@ libplanner_app_srcs = [
   'planner-application.c',
   'planner-assignment-model.c',
   'planner-conf-gconf.c',
-  'planner-calendar.c',
   'planner-calendar-dialog.c',
   'planner-calendar-selector.c',
   'planner-canvas-line.c',
diff --git a/src/planner-calendar-dialog.c b/src/planner-calendar-dialog.c
index c22c3771..d2f81d66 100644
--- a/src/planner-calendar-dialog.c
+++ b/src/planner-calendar-dialog.c
@@ -29,7 +29,6 @@
 #include <libplanner/mrp-object.h>
 #include <libplanner/mrp-project.h>
 #include <libplanner/mrp-paths.h>
-#include "planner-calendar.h"
 #include "planner-working-time-dialog.h"
 #include "planner-default-week-dialog.h"
 #include "planner-calendar-dialog.h"
@@ -107,9 +106,9 @@ static void          cal_dialog_selection_changed_cb   (GtkTreeSelection *select
 static void          cal_dialog_apply_clicked_cb       (GtkWidget        *button,
                                                        DialogData       *data);
 static void          cal_dialog_update_calendar_widgets (DialogData      *data);
-static void          cal_dialog_month_changed_cb       (PlannerCalendar       *calendar,
+static void          cal_dialog_month_changed_cb       (GtkCalendar      *calendar,
                                                        DialogData       *data);
-static void          cal_dialog_date_selected_cb       (PlannerCalendar       *calendar,
+static void          cal_dialog_date_selected_cb       (GtkCalendar      *calendar,
                                                        DialogData       *data);
 static void          cal_dialog_day_combo_changed_cb   (GtkWidget        *combo,
                                                        DialogData       *data);
@@ -610,14 +609,13 @@ planner_calendar_dialog_new (PlannerWindow *window)
                                 0);
 
        data->tree_view = GTK_WIDGET (gtk_builder_get_object (builder, "treeview"));
-       data->calendar = planner_calendar_new ();
+       data->calendar = gtk_calendar_new ();
        gtk_widget_show (data->calendar);
 
-       planner_calendar_display_options (PLANNER_CALENDAR (data->calendar),
-                                         PLANNER_CALENDAR_SHOW_HEADING |
-                                         PLANNER_CALENDAR_SHOW_DAY_NAMES |
-                                         PLANNER_CALENDAR_SHOW_WEEK_NUMBERS |
-                                         PLANNER_CALENDAR_WEEK_START_MONDAY);
+       gtk_calendar_set_display_options (GTK_CALENDAR (data->calendar),
+                                         GTK_CALENDAR_SHOW_HEADING |
+                                         GTK_CALENDAR_SHOW_DAY_NAMES |
+                                         GTK_CALENDAR_SHOW_WEEK_NUMBERS);
        g_signal_connect (data->calendar,
                          "month_changed",
                          G_CALLBACK (cal_dialog_month_changed_cb),
@@ -841,7 +839,7 @@ cal_dialog_apply_clicked_cb (GtkWidget  *button,
                return;
        }
 
-       planner_calendar_get_date (PLANNER_CALENDAR (data->calendar), &y, &m, &d);
+       gtk_calendar_get_date (GTK_CALENDAR (data->calendar), &y, &m, &d);
        t = mrp_time_compose (y, m + 1, d, 0, 0, 0);
        /* mrp_calendar_set_days (calendar, t, day, (mrptime) -1); */
        planner_cal_cmd_day_type (data->main_window, calendar, day, t);
@@ -875,7 +873,7 @@ static void
 cal_dialog_update_calendar_widgets (DialogData *data)
 {
        MrpCalendar *calendar;
-       PlannerCalendar  *calendar_widget;
+       GtkCalendar *calendar_widget;
        guint        y, m, d;
        MrpDay      *day;
        MrpTime      *t;
@@ -889,13 +887,13 @@ cal_dialog_update_calendar_widgets (DialogData *data)
                return;
        }
 
-       calendar_widget = PLANNER_CALENDAR (data->calendar);
+       calendar_widget = GTK_CALENDAR (data->calendar);
 
        gtk_widget_set_sensitive (data->calendar, TRUE);
        gtk_widget_set_sensitive (data->default_week_button, TRUE);
        gtk_widget_set_sensitive (data->working_time_button, TRUE);
 
-       planner_calendar_get_date (calendar_widget, &y, &m, &d);
+       gtk_calendar_get_date (calendar_widget, &y, &m, &d);
 
        t = mrp_time2_new ();
        mrp_time2_set_date (t, y, m+1, 1);
@@ -907,14 +905,12 @@ cal_dialog_update_calendar_widgets (DialogData *data)
                day = mrp_calendar_get_day (calendar, time, TRUE);
 
                if (day == mrp_day_get_nonwork ()) {
-                       planner_calendar_mark_day (calendar_widget,
-                                                  d,
-                                                  PLANNER_CALENDAR_MARK_SHADE);
+                       gtk_calendar_mark_day (calendar_widget,
+                                              d);
                }
                else if (day == mrp_day_get_work ()) {
-                       planner_calendar_mark_day (calendar_widget,
-                                                  d,
-                                                  PLANNER_CALENDAR_MARK_NONE);
+                       gtk_calendar_unmark_day (calendar_widget,
+                                                d);
                }
 
                mrp_time2_add_days (t, 1);
@@ -923,7 +919,7 @@ cal_dialog_update_calendar_widgets (DialogData *data)
 }
 
 static void
-cal_dialog_month_changed_cb (PlannerCalendar *calendar_widget,
+cal_dialog_month_changed_cb (GtkCalendar *calendar_widget,
                             DialogData *data)
 {
        cal_dialog_update_calendar_widgets (data);
@@ -931,7 +927,7 @@ cal_dialog_month_changed_cb (PlannerCalendar *calendar_widget,
 }
 
 static void
-cal_dialog_date_selected_cb (PlannerCalendar *calendar_widget,
+cal_dialog_date_selected_cb (GtkCalendar *calendar_widget,
                             DialogData *data)
 {
        cal_dialog_update_day_widgets (data);
@@ -970,7 +966,7 @@ cal_dialog_update_day_widgets (DialogData *data)
        MrpDay      *day;
        GList       *ivals, *l;
        MrpCalendar *calendar, *root;
-       PlannerCalendar  *calendar_widget;
+       GtkCalendar *calendar_widget;
        guint        y, m, d;
        mrptime      t;
        gint         i;
@@ -1014,9 +1010,9 @@ cal_dialog_update_day_widgets (DialogData *data)
                gtk_widget_set_sensitive (data->base_radiobutton, TRUE);
        }
 
-       calendar_widget = PLANNER_CALENDAR (data->calendar);
+       calendar_widget = GTK_CALENDAR (data->calendar);
 
-       planner_calendar_get_date (calendar_widget, &y, &m, &d);
+       gtk_calendar_get_date (calendar_widget, &y, &m, &d);
        t = mrp_time_compose (y, m + 1, d, 0, 0, 0);
 
        day = mrp_calendar_get_day (calendar, t, FALSE);
diff --git a/src/planner-calendar-selector.c b/src/planner-calendar-selector.c
index 29be2e55..472c4f67 100644
--- a/src/planner-calendar-selector.c
+++ b/src/planner-calendar-selector.c
@@ -27,7 +27,6 @@
 #include <libplanner/mrp-object.h>
 #include <libplanner/mrp-project.h>
 #include "libplanner/mrp-paths.h"
-#include "planner-calendar.h"
 #include "planner-calendar-selector.h"
 #include "planner-util.h"
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]