The "New Event" menu item is confusing and misleading, since
it is contextless item that has a context-aware action. The
result varies depending on which view you are, but this is in
no way communicated.
So just remove that, and all the GcalWindow API that is not
used anymore altogether.
All events in month-popover displays hour-label indicating their start time,
but all-day events should not display their start time.
This is caused by gtk_widget_show_all recursively setting the events list-box
and all its childrens visible.
We replace gtk_widget_show_all with gtk_widget_show to show the events list-box
and its childrens.
https://gitlab.gnome.org/GNOME/gnome-calendar/issues/250
On HiDPI displays, the color boxes of timed events
appear distorted and not squared.
Fix that by setting a fixed size, and changing the
box alignment to always shrink to a squared state.
This commit brings a few changes that I was too lazy to
split in different commits:
* Remove a few useless arguments in the GcalWeatherService API
* Move the weather management code from GcalWindow to GcalWeatherSettings
* A few style changes
This commit triggers two existing issues:
1. window size calculation
(this breaks month-cells)
2. wrong reference counts in views
(I use :destroy to avoid dangling pointers)
Currently there is no way for a theme to add some specific styles (eg colors) on Calendar widgets, without upstreaming their CSS.
This commit adds the org-gnome-Calendar CSS class on the main window, as a helper selector. (See bug #227)
The current GcalEventWidget implementation is a direct
GtkWidget subclass, which means we have to take care of
all the implementation details such as raising GdkWindows
and managing the drawing all by ourselves.
The event widget, however, can be easily described through
a GtkBuilder file. This would simplify the implementation
and makes us maintain less code.
Fix that by making GcalEventWidget a GtkBin subclass.
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.
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
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
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
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
The current implementation is deficient in many ways, the
worst one being the it relying on GObject semi-synchronous
property emission.
This issue was exposed by the Week view code, where the active
date was updated, but delayed to reach the Week header and some
events were being added ~before~ the active date changed.
With this work, I was also able to figure out a bunch of code
that relied on this (i.e. luck) to work.