Commit Graph

552 Commits

Author SHA1 Message Date
Milan Crha 98a1b23112 Show ongoing progress of calendar views in UI
This was a remaining thing from the 'Make calendar views non-UI-blocking'
work, to show progress of views in UI. This is currently done by a spinner
beside source's name in the ESourceSelector and a tooltip above that row.
2014-10-15 14:13:05 +02:00
Milan Crha 4f02ea569b Bug 738283 - Use-after-free with categories filter 2014-10-13 15:15:40 +02:00
Christian Schaarschmidt c20c593a81 Fix a build break (missing libraries) in module/calendar 2014-10-13 08:51:17 +02:00
Milan Crha 1c950517dc modules/calendar/Makefile.am: Return back forgotten migrate files 2014-10-07 13:50:35 +02:00
Milan Crha 8752647eca Make Calendar, Memos and Tasks views non-UI-blocking
The Calendar, Memos and Tasks views use to do D-Bus calls to
the backends on the main (UI) thread, which could result in UI
freezes, until the operation was done on the backend (and server)
side. This commit fixes that by invoking the operations in
a dedicated thread. It has few additional advantages too:
- operations can be cancelled
- proper error reporting to a user
- less code duplication between the views for common operations

There had been fixed some performance issues when selecting/unselecting
sources in the source selector as well.
2014-10-06 12:33:03 +02:00
Milan Crha 1de2564ea0 Calendar View: Use smaller icons in the Search bar
The icons at the search bar, to search forward, backward and stop
searching were too large, which didn't look good. This makes them
smaller, though even here can be seen a little gap around
the images in the buttons which might not be there ideally.
2014-07-21 16:17:43 +02:00
Tomas Popela 8650fb139a Bug 540362: [webkit-composer] Use webkit for composer
Merge wip/webkit-composer branch into master.
2014-06-09 16:32:25 +02:00
Milan Crha 6e9e7b0676 Ignore false GSettings key change notifications
Similar to GObject::notify, the GSettings::changed can be emitted
even if a key didn't change. It's up to the user (aka evolution)
to test for real changes, thus let's do it. It may have certain
performance positive impact too.
2014-06-05 16:59:29 +02:00
Milan Crha 2f3fbdd6c6 Ignore false GObject property change notifications
This is related to bug 698275, which did not cover all cases.
The problem here is that the dconf can in certain situation claim
that everything changed (path "/" changed), which GSettingsBinding
propagates to a GObject property unconditionally and GObject's
property setter (g_object_set_property()) also notifies about
the property change unconditionally, despite the real descendant
property setter properly checks for the value change. After all
these false notifications a callback on "notify" signal is called
and possibly an expensive operation is run.

Checking whether the value really changed helps in performance, for
which were added new e-util functions:
   e_signal_connect_notify()
   e_signal_connect_notify_after()
   e_signal_connect_notify_swapped()
   e_signal_connect_notify_object()
which have the same prototype as their GLib counterparts, but they allow
only "notify::..." signals and they test whether the value really changed
before they call the registered callback.
2014-06-04 19:46:25 +02:00
Milan Crha d46ad6d3cd Bug #678843 - May re-prompt password on account re-enable 2014-05-12 19:47:16 +02:00
Philip Withnall 61b4bacf9a e-util: Port to thread-safe ECategories API
This ports the following two function calls throughout Evolution:
 • e_categories_get_list() to e_categories_dup_list()
 • e_categories_get_icon_file_for() to e_categories_dup_icon_file_for()

It necessarily changes some internal e-util API:
 • e_util_get_searchable_categories() to
   e_util_dup_searchable_categories()

This bumps the EDS requirement to 3.13.1.

https://bugzilla.gnome.org/show_bug.cgi?id=727221
2014-03-28 10:44:44 +00:00
Milan Crha 8692b1cb72 Add an --enable-code-coverage configure option to enable gcov support
When enabled, this will compile all libraries/binaries with the necessary
gcc and ld flags to enable code coverage support using gcov.
2014-03-25 12:04:58 +01:00
Matthew Barnes c53fbc0b8f Miscellaneous cleanups. 2014-03-02 19:36:01 -05:00
Milan Crha be7f5df707 Add missing action captions after gtk-stock replacement 2014-02-24 18:30:01 +01:00
Milan Crha d0b147ddb6 Add shortcuts previously defined by gtk-stock item definitions 2014-02-17 14:38:58 +01:00
Milan Crha b48e21d9aa Stop using deprecated gtk-stock items 2014-02-12 20:47:07 +01:00
Milan Crha 7ab8b4d248 Memory leaks of GSettings objects 2014-01-30 19:47:25 +01:00
Matthew Barnes b21733d067 Bug 721545 - License text contains obsolete FSF postal address 2014-01-07 16:05:51 -05:00
Matthew Barnes 7b98c39b0a Coding style and whitespace cleanup. 2013-12-07 10:04:45 -05:00
Milan Crha 705a5a0000 Bug #712342 - Calendar search doesn't finish 2013-11-19 18:40:06 +01:00
Milan Crha 570c637480 Fix/mute issues found by Coverity scan
This makes the code free of Coverity scan issues.
It is sometimes quite pedantic and expects/suggests some
coding habits, thus certain changes may look weird, but for a good
thing, I hope. The code is also tagged with Coverity scan
suppressions, to keep the code as is and hide the warning too.
Also note that Coverity treats g_return_if_fail(), g_assert() and
similar macros as unreliable, and it's true these can be disabled
during the compile time, thus it brings in other set of 'weird'
changes.
2013-11-15 09:06:57 +01:00
Milan Crha fd67d7a343 Fix some cppcheck warnings (uninitialized variable usages) 2013-11-12 08:46:44 +01:00
Milan Crha ed2bc85f4f Bug #657808 - Copy/move of a single instance should grab whole serie 2013-11-04 21:04:07 +01:00
Bastien Nocera bc0d5d40ed Bug 710797 - Name all the timeouts added with g_timeout_add() 2013-10-29 15:22:35 -04:00
Matthew Barnes 13d765e074 Remove e_source_selector_set_select_new().
Sets a flag that's no longer used internally by ESourceSelector.
2013-10-25 12:18:27 -04:00
Matthew Barnes 4602a56ed0 Bug 707425 - Inconsistent capitalization in calendar Search menu 2013-09-22 07:09:02 -04:00
Matthew Barnes 3da4948c0f Miscellaneous cleanups. 2013-09-07 19:08:54 -04:00
Fabiano Fidêncio 96c6e7bc26 Add EShellView to E{Calendar,MemoList,TaskList}Selector
https://bugzilla.gnome.org/show_bug.cgi?id=657808
2013-09-05 15:00:59 +02:00
Fabiano Fidêncio 781cd7ccf1 Bug #658164 - Pressing the "Make this Occurrence Movable" changes meeting time 2013-08-27 01:52:02 +02:00
Matthew Barnes e9c6ceda77 Bug 704861 - Runtime warning in calendar module 2013-07-29 07:12:38 -04:00
Matthew Barnes 8fe17523da Miscellaneous cleanups. 2013-07-27 22:39:37 -04:00
Matthew Barnes d0ed242a24 ETaskShellView: Disconnect all signal handlers in dispose(). 2013-07-20 09:07:43 -04:00
Matthew Barnes 0ad9e24744 EMemoShellView: Disconnect all signal handlers in dispose(). 2013-07-20 09:07:43 -04:00
Matthew Barnes 3b7efa149a ECalShellView: Disconnect all signal handlers in dispose(). 2013-07-20 09:07:43 -04:00
Milan Crha 7a05cf2cf7 Bug #703153 - Forgotten signal callbacks for freed objects 2013-07-19 17:43:46 +02:00
Matthew Barnes cd76c782bd Miscellaneous cleanups. 2013-07-07 11:39:47 -04:00
Matthew Barnes df1dc37704 EShellView can load the GalViewCollection itself now.
EShellView no longer needs help from subclasses other than getting
the needed GalView subclasses registered.

A nice side-effect of this is EShellView subclasses can now use the
G_DEFINE_DYNAMIC_TYPE macro.
2013-07-05 16:40:50 -04:00
Matthew Barnes 7bb795b299 Remove gal_view_collection_add_factory().
No longer needed.  Instead, use g_type_ensure() to ensure the necessary
GalView subclasses are registered in the GType system before loading a
GalViewCollection.  Best place to ensure types is from GClassInitFunc.
2013-07-05 16:40:50 -04:00
Matthew Barnes 033d5013d3 Split CalendarViewFactory into separate classes by view type.
I suspect this will enable us to ditch GalViewFactory entirely once I
rework a few more things.  We'll see though; one step at a time here.
2013-07-05 16:40:50 -04:00
Matthew Barnes 3f5f362e0d Split CalendarView into separate classes by view type.
It's better to have separate classes each with a fixed type code, than
one class with a variable type code.  You'll see why in the next commit.
2013-07-05 16:40:49 -04:00
Matthew Barnes 2b9713656b GalViewFactoryEtable: Remove "specification" property.
No longer needed.

Removed functions:

  gal_view_factory_etable_get_specification()
2013-07-05 16:40:49 -04:00
Matthew Barnes 31b5261fdb EShellView: Add a "view-instance" property.
EShellView now holds a reference to the active GalViewInstance.  Where
applicable, the EShellView subclass is responsible for keeping this up
to date when the sidebar selection changes.

Holding a reference allows EShellView to implement common actions like
"Save Current View" directly instead pushing it on to subclasses.

New functions:

  e_shell_view_get_view_instance
  e_shell_view_set_view_instance
2013-07-05 16:40:48 -04:00
Matthew Barnes f267827d67 ETableSpecification: Implement GInitable.
e_table_specification_new() now takes a table specification filename and
a GError and parses the file as part of instance creation.  If a file or
parse error occurs, e_table_specification_new() returns NULL.

This replaces e_table_specification_load_from_file().

New functions:

  e_table_specification_get_filename()

Removed functions:

  e_table_specification_load_from_file()
2013-07-02 10:34:12 -04:00
Matthew Barnes fd40e93f41 ETaskShellContent: Remove hard-coded default table state.
I don't remember why E_TASK_TABLE_DEFAULT_STATE was needed when
e-calendar-table.etspec already specifies a default ETableState.
Some of the column numbers it was referencing weren't even valid.

Removing it seems to make no difference in Evolution.
2013-07-02 10:34:09 -04:00
Matthew Barnes 56423e3ec2 EMemoShellContent: Remove hard-coded default table state.
I don't remember why E_MEMO_TABLE_DEFAULT_STATE was needed when
e-memo-table.etspec already specifies a default ETableState.

Removing it seems to make no difference in Evolution.
2013-07-02 10:34:09 -04:00
Milan Crha 4a101290fd Calendar views inline text edit with Ctrl+C/V/X does not work
The shortcuts Ctrl+C/V/X are used for whole calendar items
copy/paste/cut, not for text when editing event details inline, either
in a day/week view or in a list view. By tracking the is-editing property
of respective cell editor and using it when enabling/disabling clipboard
actions makes the respective text operations work as expected.
2013-06-21 15:56:34 +02:00
Matthew Barnes 54384b7217 ECalShellView: Disconnect "prepare-for-quit" handler on dispose().
This is another source of crashes after creating and destroying a second
shell window.  The signal handler was left connected with the destroyed
shell window as the closure.
2013-06-10 16:43:38 -04:00
Matthew Barnes 243f84d37d ECalShellView cleanups. 2013-06-10 16:43:38 -04:00
Matthew Barnes 4f7b4d81e7 Reimplement the main toolbar's "prefer-item" feature.
This fixes a bug in the old implementation where the application could
crash after a second shell window was created and destroyed, because a
signal handler with the destroyed shell window as the closure was left
connected.

But moreover this simplifies the implementation by using a property
binding plus transform function instead of juggling signal handlers,
and also adds code comments where things get a little tricky.

Removed (now unused) functions:

  e_shell_window_get_toolbar_new_prefer_item
  e_shell_window_set_toolbar_new_prefer_item
2013-06-10 15:47:13 -04:00
Matthew Barnes decc4aa9a7 ETaskShellSidebar: Update selector rows after restoring state.
Call e_source_selector_update_all_rows() after connecting to the
selector tree model's "row-changed" signal.  This will ensure the
appropriate ECalClients get loaded into the ECalModel.

This fixes the bug where opening a second Tasks window shows no
content until one of the sidebar items is fiddled with.
2013-06-10 12:46:22 -04:00