Commit Graph
32 Commits
Author SHA1 Message Date
Yash Singh 29092fcfe6 edit-dialog: correctly assign repeat widgets' sensitivity
Earlier repeat widgets were sensitive even when
the event selected was read-only. This patch corrects
this behavior and makes the repeat widgets insensitive
when the event is read-only.

https://bugzilla.gnome.org/show_bug.cgi?id=782755
2017-08-18 22:56:44 -03:00
Yash Singh bb58a3a82a edit-dialog: improve vertical spacing between widgets
Earlier the edit-dialog had a grid row-spacing of 18.
This patch changed that row-spacing to 6 and adds
top-margin of 6 px above every widget group. This
ensures that the related widgets are grouped together.

https://bugzilla.gnome.org/show_bug.cgi?id=782755
2017-08-18 22:56:44 -03:00
Yash Singh 1ad72b61a3 edit-dialog: make number of occurrences accept only numeric input
Set the numeric property of number of occurrences spin button
to TRUE so that it only accepts numeric input.

https://bugzilla.gnome.org/show_bug.cgi?id=782755
2017-08-10 07:12:10 -03:00
Yash Singh b7de0f3e1f edit-dialog: set proper limits for number of occurrences
Set the lower value as 1 and upper value as G_MAXDOUBLE
to make sure that any negative number, or a number greater
than G_MAXDOUBLE is not accepted.

https://bugzilla.gnome.org/show_bug.cgi?id=782755
2017-08-10 07:12:10 -03:00
Yash Singh 9a4b7087d7 edit-dialog: hide/show repeat_limits_box
Instead of hiding the individual children of the
repeat_limits_box, hiding the repeat_limits_box
solves alignment issues, where an undesired gap
was visible below the repeat_combo upon opening
the edit-dialog for the first time.

https://bugzilla.gnome.org/show_bug.cgi?id=782755
2017-07-24 11:44:37 -03:00
Yash Singh 81ce012ed7 edit-dialog: remove unused spin_button_set_value
The number_of_occurrences was forcefully set to 0,
due to spin_button_set_value being placed incorrectly.
When a recurring event with limit_type as
GCAL_RECURRENCE_COUNT, having some 'x' number of
recurrences was opened in the edit-dialog, it showed
'0' as number_of_occurrences in place of 'x', which
is incorrect.

This patch removes this unnecessary line of code
and leads to correct assignment of number_of_occurrences.

https://bugzilla.gnome.org/show_bug.cgi?id=782755
2017-07-24 11:44:37 -03:00
Yash Singh a22bec6de3 edit-dialog: set correct value for repeat_combo
repeat_combo was assigned a value after repeat_duration
combo was assigned a value, which changed the value of the
repeat_duration combo due to the repeat_option_changed
function.

This patch fixes this issue by assigning the value to
repeat_combo prior to repeat_duration_combo.

https://bugzilla.gnome.org/show_bug.cgi?id=782755
2017-07-24 11:44:37 -03:00
Yash Singh 22fca75548 edit-dialog: show/hide Repeat widgets correctly
Currently, the repeat widgets - repeat_duration stack
and combobox are visible even when 'No Repeat' is
selected in repeat combobox.

This patch ensures that the repeat widgets are hidden
when 'No Repeat' is selected. When not selected,
repeat_duration_combo becomes visible which itself takes
care of the visibilty of the stack.

https://bugzilla.gnome.org/show_bug.cgi?id=782755
2017-07-24 11:44:37 -03:00
Yash Singh 6db25eacd6 edit-dialog: remove unnecessary condition check
An unnecessary condition check for assigning recurrence-changed
property of edit-dialog was causing a segmentation fault.

This patch removes this condition check and assigns the
recurrence-changed property correctly.

https://bugzilla.gnome.org/show_bug.cgi?id=782755
2017-07-24 11:44:10 -03:00
Yash Singh 16bce2425e window: pop up recurrence-dialog only when required
Earlier, the recurrence-dialog would pop up even when user only
wanted to change the recurrence-property of an already recurring
event. This is incorrect behavior.

This patch fixes this issue by making sure that recurrence-dialog
doesn't pop up when the new recurrence-property chosen by the
user is different from what the event already has. In this case,
the user only wants to change the recurence-property of the event
and there's no use of the recurrence-dialog.

https://bugzilla.gnome.org/show_bug.cgi?id=782755
2017-07-13 13:32:55 -03:00
Yash Singh 067e8ae765 edit-dialog: add 'Repeat' options for simple recurrences
Currently, creating recurring events is not supported
in gnome-calendar.

This patch adds a Repeat combobox with a list of
simple recurrences such as:

 * Monday - Friday events
 * Daily events
 * Weekly events
 * Monthly events
 * Yearly events

and also a list of recurrence-duration-types such as:

 * If an event should repeat forever
 * A date until which the event should repeat
 * Number of times an event should repeat

It enables the user to create simple recurring events and
even modify the recurrence-property of an already
recurring event.

https://bugzilla.gnome.org/show_bug.cgi?id=782755
2017-07-13 13:32:53 -03:00
Yash Singh 2c75e72582 event: add recurrence property
Earlier, an event had no recurrence property. Hence, the event's
recurrence pattern etc. could not be analysed, and as a result
could not be changed by the user. gnome-calendar just displayed
all the recurrences of a recurring event but had no 'readable'
knowledge regarding the characteristics of those recurrences.

This patch adds the recurrence property, which is basically
a GcalRecurrence structure linked to the event.

https://bugzilla.gnome.org/show_bug.cgi?id=782755
2017-07-13 13:32:52 -03:00
Yash Singh 59fcd01192 recurrence: add a function to check equality of recurrences
The gcal_recurrence_is_equal function checks if two recurrences are
equal or not. When a user is trying to modify the recurrence-rules
of an already recurring event, this function tells us if the
recurrence-dialog should pop up or not.

This patch also removes some unused code.

https://bugzilla.gnome.org/show_bug.cgi?id=782755
2017-07-13 13:32:49 -03:00
Yash Singh 7ab4036335 recurrence: fix GDateTime to icaltime conversion
The month and year values extracted from until-date
of recurrences were accidentally interchanged.

This patch fixes that issue by making the correct assignment.

https://bugzilla.gnome.org/show_bug.cgi?id=782755
2017-07-10 22:37:26 -03:00
Yash Singh 27bb337f54 recurrence: Add recurrence struct to parse recurrence-rules
Currently, gnome-calendar has no component to deal
with recurrence-rules of events. This missing component
is however required to create and modify recurring events.

This patch adds the required GcalRecurrence component
which parses the recurrence-rules with details like:

 * Frequency of the recurring event
 * Duration of the recurrences:
	** If they repeat until a particular date
	** If they repeat a fixed number of times
	** If they repeat forever

and then stores these details in a suitable format
in the GcalRecurrence structure. The gcal-recurrence
functions simplify the task of handling and editing
recurrences. This structure is the first step towards
creating a new 'recurrence' property of an event.

https://bugzilla.gnome.org/show_bug.cgi?id=782755
2017-07-04 10:32:48 -03:00
Yash Singh 68c604b095 manager: set 'rid' to NULL when 'All events' chosen
Setting 'rid' to NULL in gcal_manager_update_event()
when 'All events' chosen allows us to modify
All and Future Instances of recurrent events correctly.

https://bugzilla.gnome.org/show_bug.cgi?id=782755
2017-06-14 18:28:54 -03:00
Yash Singh be9da0cbda views: ask for recurrence when dropping recurrent events
While dragging and dropping a recurrent event, pop
up the recurrence-dialog to allow the user to choose
the set of events to which the changes should be
applied.

https://bugzilla.gnome.org/show_bug.cgi?id=782755
2017-06-14 16:18:11 -03:00
Yash Singh a7add6d6be utils: set recurrence-dialog transient for toplevel widget
Setting the recurrence-dialog transient for toplevel widget
allows us to take care of
ask_recurrence_modification_type() calls in the
various views.

https://bugzilla.gnome.org/show_bug.cgi?id=782755
2017-06-14 14:44:10 -03:00
Yash Singh 19f10697d5 utils: set recurrence-dialog modal to toplevel widget
Setting the recurrence-dialog modal to toplevel widget
allows us to take care of
ask_recurrence_modification_type() calls in the
various views.

https://bugzilla.gnome.org/show_bug.cgi?id=782755
2017-06-12 14:46:38 -03:00
Yash Singh e13bbcefe6 manager: pass NULL as 'rid' when 'All Events' chosen
If user chooses 'All Events' option while deleting
a recurrent event, pass NULL as the 'rid' argument to
e_cal_client_remove_object().

https://bugzilla.gnome.org/show_bug.cgi?id=782755
2017-06-10 09:29:29 -03:00
Yash Singh 5a5dc6716a window: pop up recurrence-dialog right after edit-dialog
The recurrence-dialog opens only if the event to be modified
is a recurring event and only if the user doesn't cancel
the modification in the edit-dialog. If the user presses
'Cancel' in the recurrence-dialog after making modifications
in the edit-dialog, then no changes are applied.

https://bugzilla.gnome.org/show_bug.cgi?id=782755
2017-06-10 09:02:31 -03:00
Yash Singh a9430f54d0 utils: add ESource* argument to ask-recurrence-modification-type
Earlier the argument was ESource. Changed
the argument to ESource* for the function
to correctly fetch "client" data from the
source.

https://bugzilla.gnome.org/show_bug.cgi?id=782755
2017-06-10 08:49:48 -03:00
Yash Singh 6b31ac88c2 manager: pass correct rid & uid to remove-event
Passing the correct rid & uid to
e_cal_client_remove_object() ensures that
the deletion of recurrent events is
handled correctly.

https://bugzilla.gnome.org/show_bug.cgi?id=782755
2017-06-09 22:33:46 -03:00
Yash Singh 7fd3e48427 manager: set client upon loading event
Add EClient support while loading an event.
This EClient then helps us check its
capability in window.

https://bugzilla.gnome.org/show_bug.cgi?id=782755
2017-06-09 22:33:46 -03:00
Yash Singh cbc9fe7be1 utils: add dialog to modify recurring events
Whenever a user chooses to modify an event which is
recurring, a new dialog will open automatically when
the user clicks 'Done' or 'Delete' in edit-dialog,
after making the desired changes. This new dialog
will ask the user to choose the set of events to
which the changes will be applied. The options
include 'This Event Only', 'Subsequent Events'
and 'All Events'. The function returns true and
the changes take place only if the user chooses any
option other than 'Cancel' or <Alt+F4>.

https://bugzilla.gnome.org/show_bug.cgi?id=782755
2017-06-09 22:33:46 -03:00
Yash Singh 9ffa913ad4 manager: pass ECalObjModType to update and remove
Currently, GcalManager always assumes E_CAL_OBJ_MOD_THIS
when modifying or deleting events. Since we're landing
the groundwork for recurrence management, we can't assume
this anymore.

This patch, then, allows GcalManager:modify_event() and
:remove_event() receive the ECalObjModType instead of
assuming E_CAL_OBJ_MOD_THIS. However, this commit does
not add recurrence support yet, and every call to these
functions are still passing E_CAL_OBJ_MOD_THIS.

https://bugzilla.gnome.org/show_bug.cgi?id=782755
2017-05-27 11:36:05 -03:00
Yash Singh 6dd234296e event: add recurrence property & has-recurrence function
Recurrence property of the event enables us to add recurrences
to it in the future. It is the first step in that direction.

https://bugzilla.gnome.org/show_bug.cgi?id=782755
2017-05-18 14:50:14 -03:00
Yash Singh 7e68bfb150 source-dialog: change label to "Expired" if account credentials expire
Earlier Calendar showed an account as "on" even when the credentials had expired.

This patch fixes the issue and instead shows "Expired" label upon expiration of credentials.

https://bugzilla.gnome.org/show_bug.cgi?id=761766
2017-03-27 09:06:27 -03:00
Yash Singh 26ecf3c161 event-widget: assign display-text in appropriate format to event-widget
Earlier the height of event-widget with duration of 30 mins or less exceeded
the desired space in week-grid. As height available was not checked beforehand,
this resulted in some event-widgets getting height assigned which was more
than the height available.

This patch fixes the erroneous assignment of event-widget's height by first
comparing the required height with the available height. If the required
height exceeds the available height, then the display-text is given as a
single-line for the widget to fit properly.

https://bugzilla.gnome.org/show_bug.cgi?id=778070
2017-03-23 19:58:04 -03:00
Yash Singh 6cc6e4f7e7 week-grid: remove unneeded usage of natural-height
As the assignment of display-text, and in turn that of event-widget's height,
is taken care of in event-widget, we no longer need to consider natural-
height, while assigning height in week-grid.

This patch fixes this issue by removing natural-height, and directly
assigning the desired value to height.

https://bugzilla.gnome.org/show_bug.cgi?id=778070
2017-03-23 19:53:46 -03:00
Yash Singh 6f87ada70d window: set edit dialog's event to NULL after saving
Earlier the app used to crash when a new event was added using the
'Edit Details' buttion/dialog. This was happening because edit dialog's
event was set to NULL before the event was being stored in the calendar
through the 'edit_dialog' and hence the app was crashing.

This patch fixes the above-mentioned issue by saving the event before
setting the edit dialog's event to NULL.

https://bugzilla.gnome.org/show_bug.cgi?id=779733
2017-03-12 12:42:02 -03:00
Yash Singh 6ce45743c6 gcal-window: Declare 'view' as type guint32
Earlier 'view' was declared as a 'guint' but was used as 'gint'.
This patch changes the declaration of 'view' to gint32.

https://bugzilla.gnome.org/show_bug.cgi?id=778299
2017-02-09 10:36:05 -02:00