Replace deprecated GtkUIManager

This replaces a deprecated GtkUIManager with a new EUIManager, which
uses its own file format, similar to the .ui used by the gtk+, but
not the same. This brought in more structures like EUIAction and
EUIActionGroup.

To name the few most significant changes:

The overall window architecture had been changed internally too, the
EShellView is a widget now and contains everything except of the header
bar. This allows to create the window content once and not regenerate it
every switch between the views. It also moved the EUIManager from
the EShellWindow to the EShellView.

The EMailShellContent does not implement an EMailReader interface any more.
It allows to have cleaner EMailReader usage in the code. To get to
the EMailReader use:

   EMailView *mail_view = NULL;

   g_object_get (e_shell_view_get_shell_content (mail_shell_view), "mail-view", &mail_view, NULL);
   if (mail_view) {
      EMailReader *mail_reader = E_MAIL_READER (mail_view);

      ...

      g_clear_object (&mail_view);
   }

The plugins cannot have their UI definitions in the .eplug file,
these are added in the code, directly to the EUIManager. Modules
already did that.
This commit is contained in:
Milan Crha
2024-07-31 08:58:37 +02:00
parent b036f919b1
commit d773473d18
235 changed files with 26381 additions and 23850 deletions

View File

@ -24,7 +24,6 @@
<xi:include href="xml/e-shell-taskbar.xml"/>
<xi:include href="xml/e-shell-searchbar.xml"/>
<xi:include href="xml/e-shell-switcher.xml"/>
<xi:include href="xml/e-shell-headerbar.xml"/>
<xi:include href="xml/e-shell-utils.xml"/>
</chapter>
@ -42,6 +41,10 @@
<title>Index</title>
<xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include>
</index>
<index id="api-index-3-56">
<title>Index of new symbols in 3.56</title>
<xi:include href="xml/api-index-3.56.xml"><xi:fallback /></xi:include>
</index>
<index id="api-index-3-54">
<title>Index of new symbols in 3.54</title>
<xi:include href="xml/api-index-3.54.xml"><xi:fallback /></xi:include>