Commit Graph
49 Commits
Author SHA1 Message Date
Georges Basile Stavracas Neto 923e3b7b71 project: Move range tree to core/ 2020-04-14 19:08:05 +00:00
Georges Basile Stavracas Neto dbfebc85fa Introduce GcalRange
GcalRange is a new structure that represents a time range. It is
always inclusive at the start, and exclusive at the end.
2020-04-14 19:08:05 +00:00
Georges Basile Stavracas Neto 1f6559de68 Remove ECalDataModel and ECalDataModelSubscriber
Drop the bomb!
2020-04-01 21:06:51 -03:00
Georges Basile Stavracas Neto 3692a0ccf6 Introduce the new calendar monitoring API
It is, as expected, heavily inspired by the ECalDataModel code,
except it uses GDateTime, is timezone aware, and can handle all
day events correctly.
2020-04-01 21:06:51 -03:00
Georges Basile Stavracas Neto 58ce571e93 build: Include src/ files
This will be required by tests in order to
find headers in src/
2020-04-01 21:06:50 -03:00
Georges Basile Stavracas Neto 87c1ffb9d5 Reimplement alarm support
This is a complete reimplementation of alarms in Calendar.

Rejoice.
2019-12-02 16:41:56 -03:00
Georges Basile Stavracas Neto 646a002826 project: Add libhandy dependency 2019-12-02 16:41:56 -03:00
Georges Basile Stavracas Neto b772349c3f Move UI files to src/
Keep it in sync with what To Do and Settings do.
2019-12-02 16:41:56 -03:00
Georges Basile Stavracas Neto 371fdbc881 Introduce new source discoverer
The new source discoverer is a complete overhaul of
the current code. It is async-only, correctly threaded,
and easier to maintain.

A major new feature of this web source discoverer is
that it now pings the server to see if the URL feeds
us back with an iCalendar file.

Furthermore, it continues to use E-D-S WebDAV discovery
functions as a fallback mechanism.

Fixes #380
2019-07-13 16:04:30 -03:00
Georges Basile Stavracas Neto 9cc07c5786 calendar-management: Introduce GcalEditCalendarPage
This is the second of the three original pages we used to have.
This one edits calendars.
2019-06-24 21:32:58 -03:00
Georges Basile Stavracas Neto db4613ae71 new-calendar-page: Add stub page 2019-06-24 21:32:58 -03:00
Georges Basile Stavracas Neto ad017d1709 calendars-page: Introduce GcalCalendarsPage
A page dedicated to show a list of calendars and add
new ones. Other pages will come in soon.
2019-06-24 21:32:57 -03:00
Georges Basile Stavracas Neto 831bbbdba8 calendar-management-page: Introduce new interface
This will be used by the pages of the calendar management dialog
to let it know they are actual pages, to offer an activation
mechanism, and to communicate with the dialog when they want to
switch to another page.
2019-06-24 21:32:57 -03:00
Georges Basile Stavracas Neto 4088b8b6bb source-dialog: Rename to GcalCalendarManagementDialog 2019-06-24 21:32:44 -03:00
Georges Basile Stavracas Neto c0720d0031 build: Move GcalSourceDialog to gui/calendar-management
Soon we will start populating this subfolder with many other
calendar management files, and to avoid making the gui/ folder
a mess, move source dialog to it.
2019-06-24 21:32:44 -03:00
Georges Basile Stavracas Neto a88b628507 build: Make generated sources a dependency
So that they are 100% certain to be generated before
starting to build libgcal.
2019-05-04 22:15:17 -03:00
Georges Basile Stavracas Neto a2609d6853 project: Reorganize much 2019-05-04 19:48:40 -03:00
Georges Basile Stavracas Neto 70cb7c14a9 build: Make libgcal a static library
This avoids us building everything twice.
2019-05-04 12:28:45 -03:00
Georges Basile Stavracas Neto f55b4531ef project: Move ui-related classes to gui/ 2019-05-04 12:14:05 -03:00
Georges Basile Stavracas Neto 28c5a41639 build: Properly include deps and directories in libgcal_dep 2019-05-04 12:05:39 -03:00
Georges Basile Stavracas Neto fd3d2ea3f6 window: Move calendar popover to GcalCalendarPopover
This helps reducing the LOC number of GcalWindow, and
allows us to also implement the popover in a better way.
2019-05-04 12:05:39 -03:00
Georges Basile Stavracas Neto 1a5ff545a2 project: Move a few classes to core/ 2019-05-04 12:05:39 -03:00
Georges Basile Stavracas Neto b9848e5443 Introduce GcalCalendar
GcalCalendar is an abstraction on top of ESource
and ECalClient. Its initialization is asynchronous
and failable. This gives us more flexibility when
initializing and loading the calendars from EDS.
2019-05-04 12:05:39 -03:00
Georges Basile Stavracas Neto 6994723d79 search: Introduce a search engine
This is architectured in such a way that it will
allow us to introduce other searcheable terms in
the future.

All the functionality that in the past was in
GcalManager is now spread across GcalSearchModel,
GcalSearchHitEvent and GcalSearchEngine.
2019-04-29 17:08:53 -03:00
Georges Basile Stavracas Neto 907b71635b manager: Move threading functions to utils 2019-04-29 17:08:52 -03:00
Georges Basile Stavracas Neto 36f4809c1c window: Turn search button into a DzlSuggestionButton
Gives us a nice, smooth and sweet animation.
2019-04-29 17:08:51 -03:00
Georges Basile Stavracas Neto 68943eec57 utils: Add GDateTime utils
This will greatly help with the transition to GDateTime.
In the future, we can propose these APIs to GLib itself.
2019-04-26 12:59:29 -03:00
Georges Basile Stavracas Neto 3bff2b8981 utils: Move to utils/ subdir
We will split this file into more, specialized, files
so it makes sense to not pollute the top source dir.
2019-04-25 20:59:08 -03:00
Georges Basile Stavracas Neto ffb6eabe53 time-zone-monitor: Introduce timezone monitor
This will finally allow us monitor timezones and react
to changes. And that's only possible because of the new
GcalContext API!
2019-04-25 16:30:57 -03:00
Georges Basile Stavracas Neto 9a13fb5c2a context: Introduce GcalContext
This is just the bare minimum of what will become
the main context class of GNOME Calendar. As of
now, nothing creates or uses it.
2019-04-24 11:44:51 -03:00
Georges Basile Stavracas Neto 474ce8b9da application: Integrate with Night Light
This is mostly a nice touch of integration for when
using the Night Light feature. It can be disabled by
switching the 'follow-night-light' dconf key to false,
but no user interface widgetry was added.
2018-07-29 00:54:02 -03:00
Iñigo Martínez 11fb4717a2 tests: Fix GCalManager test
The unit test that checks GCalManager test fails due to missing
schemas.

This patch allows schemas to be compiled in the build tree and also
sets the environment variables so tests can found them and run
properly.

Additional code and testing from Mohammed Sadiq <sadiq@sadiqpk.org>
2018-02-11 23:17:12 +00:00
Georges Basile Stavracas Neto c7f6fd19c4 project: Move enums to gcal-enums.h 2018-01-28 00:44:36 -02:00
Georges Basile Stavracas Neto c4ca9cac3c project: Rename GcalSearchView to GcalSearchPopover
This was never a view, but a popover.
2018-01-27 23:02:36 -02:00
Georges Basile Stavracas Neto 499db7bfd4 weather: Rework weather management
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
2018-01-27 20:36:29 -02:00
Georges Basile Stavracas Neto ab20672aeb weather: Move to a subdirectory 2018-01-27 15:24:32 -02:00
Florian Brosch 83d6eaef9a weather: Introduce a proper timer for forecasts. 2017-12-11 21:32:01 -02:00
Florian Brosch 83bec27ad5 Initial weather service.
This commit introduces two new classes:

 1. GCalWeatherService
 2. GCalWeatherInfo

GcalWeatherservice picks-up the current location and periodically
fetches weather reports represented by GcalWeatherInfo.

The weather part is not complete yet.
2017-12-11 21:23:19 -02:00
Georges Basile Stavracas Neto eff50668d4 month-view: introduce new overflow popover window
This ~almost~ implements a perfectly semantic transition (which
is kinda impossible now).
2017-11-15 02:03:26 -02:00
Georges Basile Stavracas Neto e59910f0e9 month-view: rewrite was a template widget 2017-10-06 20:32:00 -03:00
Georges Basile Stavracas Neto 27a44c3092 project: don't install private library
Instead, bring back building all the objects into
calendar itself, and only use the private library
internally.
2017-09-08 21:04:02 -03:00
Georges Basile Stavracas Neto 68c2b7d3ac project: remove GcalSubscriberView
The subscriber view was an unecessary layer and only
added more complication than it actually helped.

This commit merges GcalSubscriberView and GcalMonthView
into a single class.
2017-09-07 16:07:04 -03:00
Georges Basile Stavracas Neto 6d19e30973 project: libgcal library 2017-09-07 16:06:21 -03:00
Georges Basile Stavracas Neto e68dc3aebf project: move GcalView to views/
It makes sense to put the interface together with
the other classes.
2017-09-07 14:37:37 -03:00
Georges Basile Stavracas Neto 647e243bd5 project: don't compile source files twice
We can just link with the private library, and use the
main file to make it an executable. This drops the compile
time by 43% here.
2017-09-07 12:07:22 -03:00
Georges Basile Stavracas Neto c7f7506d52 project: move evolution files to contrib/
It's better for the project organization if we nicely
organize external projects' files in contrib/, and our
own files in src/.
2017-09-07 11:41:05 -03:00
Georges Basile Stavracas Neto 00b9c1c7a7 project: style improvements in meson files 2017-09-07 02:15:37 -03:00
Iñigo Martínez 1b04e6f4f5 project: Minor meson improvements.
This patch makes some minor improvements to the meson build system.
The changes are as follows:

* Avoid conditional statements when setting config.h values.
* Ordered calendar dependencies.
* Reused variables derived from options.
* Removed unnecessary new line in the output at the configuration's
  end.
* Use set10 function avoiding the trinary operator.
* Removed dependencies on the libgcal dependency, as they are not
  needed.

https://bugzilla.gnome.org/show_bug.cgi?id=786481
2017-08-18 23:06:29 -03:00
Iñigo Martínez 4c115249a7 project: Port to meson build system
https://bugzilla.gnome.org/show_bug.cgi?id=782843
2017-08-10 07:19:28 -03:00