Commit Graph
139 Commits
Author SHA1 Message Date
Georges Basile Stavracas Neto f83826515e edit-dialog: Use parameter specs to define properties 2018-01-30 01:10:25 -02:00
Georges Basile Stavracas Neto b936759e5c project: Make time format a first-class citizen
The current code deals with 12/24h clock formats almost like
a workaround of the issue. This commit adds proper support to
different clock formats.
2018-01-28 02:30:55 -02:00
Georges Basile Stavracas Neto 1dcf0d1f24 project: Unify headers 2018-01-27 22:35:20 -02:00
Michael Catanzaro ce8e8c217e edit-dialog: Fix timezone for events created in month view
In month view, when clicking on a day of the month, every event is
initially an All Day event until the user opens the Edit Details dialog
and unchecks the checkbox. This means that the event is originally
created in UTC time, and needs to be explicitly switched to local time.
2017-12-05 16:28:18 -06:00
Georges Basile Stavracas Neto a0c224a0d5 edit-dialog: alarm rows are not activatable
Otherwise, they show that annoying hover effect
that is ultimately useless, since clicking on the
row won't do anything.
2017-10-07 11:08:51 -03:00
Georges Basile Stavracas Neto b9310a84a3 widgets: ensure types on class_init
This will avoid GtkBuilder crashing because it couldn't
find the correct type for a given widget.
2017-09-20 19:14:15 -03:00
Nidhi Gupta a5d1d9dc99 edit-dialog: set minimum number of occurrence to 2
An event should be considered as recurring only when it occurs
at least 2 times.

So to make sure the number of occurrences are at least 2,
set minimum value of recurrence spin button as 2.

https://bugzilla.gnome.org/show_bug.cgi?id=787054
2017-09-12 20:07:54 +05:30
Georges Basile Stavracas Neto 7c587e896e edit-dialog: reduce header circle icon 2017-09-07 15:01:50 -03:00
Georges Basile Stavracas Neto 8927e10ae0 edit-dialog: wrap in a scrolled window
As we're adding more and more widgets in the Edit dialog,
it is now growing too tall to fit normal screens. Thus, wrap
it in a scrolled window, and let the content height cover
75% of the main window at most.
2017-09-07 14:58:14 -03:00
Georges Basile Stavracas Neto e60c8593dd window: propagate manager using properties 2017-09-07 14:35:44 -03:00
Georges Basile Stavracas Neto 3b6b536663 recurrence: add GcalRecurrenceModType
Instead of reusing the ECalObjModType and mixing the
prefixes all around, do this small cleanup and add a
gcal-prefixed enum.
2017-09-07 00:02:40 -03:00
Georges Basile Stavracas Neto edce0ab076 recurrence: use refcount instead of copy/free 2017-09-06 22:15:13 -03:00
Georges Basile Stavracas Neto 6004123ba2 edit-dialog: fix time widgets sensitive when all day 2017-08-24 07:16:15 +09:00
Georges Basile Stavracas Neto 3eec69c559 edit-dialog: update style
Calendar matured its code style over time and
edit dialog kept the old style.
2017-08-24 07:07:36 +09:00
newtodisworld@yandex.com e5024de887 edit-dialog: fix date span calculation
https://bugzilla.gnome.org/show_bug.cgi?id=772100
2017-08-24 06:53:32 +09:00
Abdullahi Usman e56bbc78a8 edit-dialog : correct time row visibility
The revealer widget in edit dialog's event time interval row uses to hide the
time selector widgets when the event is checked as all-day and also reveal the
widgets when not checked as all-day.

Sometimes edit dialog may turn on the visibility of the time selector
widgets when the revealer's animation already starts, causing a flickering of the widgets.

We remove the revealer widget and leave edit dialog to toggle the
visibility of time selector widgets when needed.

https://bugzilla.gnome.org/show_bug.cgi?id=771572
2017-08-22 21:01:20 -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 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 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
Georges Basile Stavracas Neto 1ef8fbcb34 edit-dialog: unconditionally update event dialog
When setting an event, we might modify the event in such a way that
the edit dialog can be broken if it doesn't update.

Fix that by unconditionally updating the event dialog when setting
an event.
2017-05-22 22:55:10 -03:00
Georges Basile Stavracas Neto 7d771830f1 edit-dialog: fix g_list_sort() usage 2017-04-24 10:03:28 -03:00
Evgeny Shulgin d76bf34640 edit-dialog: sort the list of calendars in alphabetical order
Since gcal_manager_get_sources() returns a GList of ESource received
from the hash table, they are not sorted alphabetically. Because of
this, edit-dialog shows the unsorted list.

I added a function for sorting this GList that is case-insensitive.

https://bugzilla.gnome.org/show_bug.cgi?id=781231
2017-04-24 09:54:17 -03:00
Georges Basile Stavracas Neto 7681b7a2da project: document classes 2017-04-12 15:17:17 -03:00
Georges Basile Stavracas Neto cf6cdfd2aa project: use cairo_surface_t when possible
We can avoid an entire roundtrip from surface > pixbuf > surface
if we simply pass the surface to GtkImage. We also save quite
a bunch of debug lines.
2017-03-17 10:14:25 -03:00
Georges Basile Stavracas Neto 478db350e3 project: intrument functions
Add the newly added macros to provide useful tracing
information.
2017-03-17 10:14:25 -03:00
Georges Basile Stavracas Neto d5825bbd35 project: override log domains
This way, we can have more useful debug spils.
2017-03-17 10:14:25 -03:00
Georges Basile Stavracas Neto 36cabc0aff Revert "edit-dialog: fix date span backward"
This reverts commit 1228f05a90.
2017-03-06 22:19:34 -03:00
Andrei Ceapa 1228f05a90 edit-dialog: fix date span backward
The problem is that the end date might change to one before the
start date when modifying the start time.

Treat some cases taking into consideration the start date and start
time related to the fact that an event is spanning all day or not.
Separate the handling of the start date and start time.

https://bugzilla.gnome.org/show_bug.cgi?id=772100
2017-03-06 21:56:11 -03:00
Mohammed Sadiq 6cf5c0317d edit-dialog: check if event is new the right way
Checking if a new event is already having a source succeeds
for some reason (which should actually fail).

But thankfully we already have an event_is_new gboolean flag.
Check the status of that flag and add or update the event.

https://bugzilla.gnome.org/show_bug.cgi?id=771566
2016-11-22 09:54:28 -02:00
Georges Basile Stavracas Neto a8f4346e1c edit-dialog: setup the correct label when selecting a calendar
Since now we manually manage the headerbar title and subtitle, setting
them via GtkHeaderBar API won't have any effect.

Fix that by directly setting the subtitle label.

https://bugzilla.gnome.org/show_bug.cgi?id=771565
2016-09-28 00:34:23 -03:00
Georges Basile Stavracas Neto 18c5607d87 edit-dialog: fix typo 2016-09-14 16:11:22 -03:00
Georges Basile Stavracas Neto 56ae69d6c4 edit-dialog: keep start and end dates synchronized
Never let them enter in an invalid state, where the end
date is ahead of the start date.

https://bugzilla.gnome.org/show_bug.cgi?id=770263
2016-08-30 00:30:58 -03:00
Georges Basile Stavracas Neto 3560a9de43 edit-dialog: fix insensitive time choosers
They are hidden now, no need to handle the sensitive
state of them as well.
2016-08-30 00:30:58 -03:00
Georges Basile Stavracas Neto cd50bec506 project: fix build warnings
https://bugzilla.gnome.org/show_bug.cgi?id=770466
2016-08-29 23:08:39 -03:00
Ernestas Kulik 46a05e5d00 edit-dialog: fake inclusive end date for all-day events
Currently, all-day multi-day events are displayed inconsistently with
regard to other calendar applications. That is due to strict following
of RFC 5545, which mandates non-inclusive all-day multi-day event end
dates. This commit makes the edit dialog display a faked date for such
events.

https://bugzilla.gnome.org/show_bug.cgi?id=769300
2016-08-03 16:41:14 +03:00
Ernestas Kulik dd4142f255 edit-dialog: set time format unconditionally
If GcalEditDialog.format_24h is initialized to zero, the call to
gcal_edit_dialog_set_time_format() from GcalWindow will not make
period_combo boxes visible on systems, where 12-hour clocks are used.
This commit fixes that by removing the if statement from the function.

https://bugzilla.gnome.org/show_bug.cgi?id=765370
2016-07-27 16:36:36 -03:00
Georges Basile Stavracas Neto a5634dc5fb edit-dialog: put the time selectors in a revealer 2016-07-06 18:54:59 -03:00
Georges Basile Stavracas Neto 025d931da8 edit-dialog: use circular icons for sources
They look nicer in the current UI.
2016-07-06 18:54:59 -03:00
Georges Basile Stavracas Neto 9e17710052 edit-dialog: implement moving events between sources
After adding the button in the headerbar, it is natural to
bring back the ability to move events between sources.

This commit finally includes the usage of GcalManager:move_event_to_source
function, which was implemented ages ago.
2016-07-06 18:54:59 -03:00
Georges Basile Stavracas Neto bbcf20cf44 edit-dialog: add a button in the headerbar
This button will be used to select the new source of the event.
2016-07-06 18:54:59 -03:00
Georges Basile Stavracas Neto c406b604e2 edit-dialog: fix Reminders dim label size 2016-07-06 12:38:09 -03:00
Georges Basile Stavracas Neto dc1f742cfe edit-dialog: make buttons sensitive when removing alarm 2016-07-06 03:13:38 -03:00
Georges Basile Stavracas Neto db2983be61 edit-dialog: sort alarms by relative date 2016-07-06 03:01:56 -03:00
Georges Basile Stavracas Neto 9723d60233 edit-dialog: make already-added alarms' buttons insensitive
Since we only support 1 alarm per time, we have to check and
eventually make insensitive the buttons related to the alarms.
2016-07-06 03:01:56 -03:00