Skip to content

Commit a3c97eb

Browse files
fxriraveit65
authored andcommitted
EomApplication: Make most members private
This allows plugin usage without installing toolbar editor headers. origin commit: https://gitlab.gnome.org/GNOME/eog/commit/e647078
1 parent bb3b0c0 commit a3c97eb

File tree

6 files changed

+121
-61
lines changed

6 files changed

+121
-61
lines changed

src/Makefile.am

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ MARSHAL_OUTPUT = \
1616
eom-marshal.c
1717

1818
NOINST_H_FILES = \
19+
eom-application-internal.h \
1920
eom-session.h \
2021
eom-util.h \
2122
eom-pixbuf-util.h \

src/eom-application-internal.h

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
/* Eye Of Gnome - Application Facade (internal)
2+
*
3+
* Copyright (C) 2006-2012 The Free Software Foundation
4+
*
5+
* Author: Lucas Rocha <lucasr@gnome.org>
6+
*
7+
* Based on evince code (shell/ev-application.h) by:
8+
* - Martin Kretzschmar <martink@gnome.org>
9+
*
10+
* This program is free software; you can redistribute it and/or modify
11+
* it under the terms of the GNU General Public License as published by
12+
* the Free Software Foundation; either version 2 of the License, or
13+
* (at your option) any later version.
14+
*
15+
* This program is distributed in the hope that it will be useful,
16+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
17+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18+
* GNU General Public License for more details.
19+
*
20+
* You should have received a copy of the GNU General Public License
21+
* along with this program; if not, write to the Free Software
22+
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
23+
*/
24+
25+
#ifndef __EOM_APPLICATION_INTERNAL_H__
26+
#define __EOM_APPLICATION_INTERNAL_H__
27+
28+
#include <glib.h>
29+
#include <glib-object.h>
30+
31+
#include <libpeas/peas-extension-set.h>
32+
33+
#include "eom-application.h"
34+
#include "eom-plugin-engine.h"
35+
#include "egg-toolbars-model.h"
36+
#include "eom-window.h"
37+
38+
G_BEGIN_DECLS
39+
40+
struct _EomApplicationPrivate {
41+
EggToolbarsModel *toolbars_model;
42+
gchar *toolbars_file;
43+
EomPluginEngine *plugin_engine;
44+
45+
EomStartupFlags flags;
46+
47+
PeasExtensionSet *extensions;
48+
};
49+
50+
51+
EggToolbarsModel *eom_application_get_toolbars_model (EomApplication *application);
52+
53+
void eom_application_save_toolbars_model (EomApplication *application);
54+
55+
void eom_application_reset_toolbars_model (EomApplication *app);
56+
57+
G_END_DECLS
58+
59+
#endif /* __EOM_APPLICATION_INTERNAL_H__ */
60+

src/eom-application.c

Lines changed: 50 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
#include "eom-window.h"
3232
#include "eom-application.h"
3333
#include "eom-application-activatable.h"
34+
#include "eom-application-internal.h"
3435
#include "eom-util.h"
3536

3637
#include <string.h>
@@ -55,7 +56,7 @@ eom_application_activate (GApplication *application)
5556
{
5657
eom_application_open_window (EOM_APPLICATION (application),
5758
GDK_CURRENT_TIME,
58-
EOM_APPLICATION (application)->flags,
59+
EOM_APPLICATION (application)->priv->flags,
5960
NULL);
6061
}
6162

@@ -72,27 +73,28 @@ eom_application_open (GApplication *application,
7273

7374
eom_application_open_file_list (EOM_APPLICATION (application),
7475
list, GDK_CURRENT_TIME,
75-
EOM_APPLICATION (application)->flags,
76+
EOM_APPLICATION (application)->priv->flags,
7677
NULL);
7778
}
7879

7980
static void
8081
eom_application_finalize (GObject *object)
8182
{
8283
EomApplication *application = EOM_APPLICATION (object);
84+
EomApplicationPrivate *priv = application->priv;
8385

84-
if (application->toolbars_model) {
85-
g_object_unref (application->toolbars_model);
86-
application->toolbars_model = NULL;
87-
g_free (application->toolbars_file);
88-
application->toolbars_file = NULL;
86+
if (priv->toolbars_model) {
87+
g_object_unref (priv->toolbars_model);
88+
priv->toolbars_model = NULL;
89+
g_free (priv->toolbars_file);
90+
priv->toolbars_file = NULL;
8991
}
9092

91-
g_clear_object (&application->extensions);
93+
g_clear_object (&priv->extensions);
9294

93-
if (application->plugin_engine) {
94-
g_object_unref (application->plugin_engine);
95-
application->plugin_engine = NULL;
95+
if (priv->plugin_engine) {
96+
g_object_unref (priv->plugin_engine);
97+
priv->plugin_engine = NULL;
9698
}
9799
eom_application_save_accelerators ();
98100
}
@@ -106,10 +108,10 @@ eom_application_add_platform_data (GApplication *application,
106108
G_APPLICATION_CLASS (eom_application_parent_class)->add_platform_data (application,
107109
builder);
108110

109-
if (app->flags) {
111+
if (app->priv->flags) {
110112
g_variant_builder_add (builder, "{sv}",
111113
"eom-application-startup-flags",
112-
g_variant_new_byte (app->flags));
114+
g_variant_new_byte (app->priv->flags));
113115
}
114116
}
115117

@@ -121,11 +123,11 @@ eom_application_before_emit (GApplication *application,
121123
const gchar *key;
122124
GVariant *value;
123125

124-
EOM_APPLICATION (application)->flags = 0;
126+
EOM_APPLICATION (application)->priv->flags = 0;
125127
g_variant_iter_init (&iter, platform_data);
126128
while (g_variant_iter_loop (&iter, "{&sv}", &key, &value)) {
127129
if (strcmp (key, "eom-application-startup-flags") == 0) {
128-
EOM_APPLICATION (application)->flags = g_variant_get_byte (value);
130+
EOM_APPLICATION (application)->priv->flags = g_variant_get_byte (value);
129131
}
130132
}
131133

@@ -139,6 +141,9 @@ eom_application_class_init (EomApplicationClass *eom_application_class)
139141
GApplicationClass *application_class;
140142
GObjectClass *object_class;
141143

144+
g_type_class_add_private (eom_application_class,
145+
sizeof (EomApplicationPrivate));
146+
142147
application_class = (GApplicationClass *) eom_application_class;
143148
object_class = (GObjectClass *) eom_application_class;
144149

@@ -171,42 +176,46 @@ on_extension_removed (PeasExtensionSet *set,
171176
static void
172177
eom_application_init (EomApplication *eom_application)
173178
{
179+
EomApplicationPrivate *priv;
174180
const gchar *dot_dir = eom_util_dot_dir ();
175181

176182
eom_session_init (eom_application);
177183

178-
eom_application->toolbars_model = egg_toolbars_model_new ();
179-
eom_application->plugin_engine = eom_plugin_engine_new ();
180-
eom_application->flags = 0;
184+
eom_application->priv = EOM_APPLICATION_GET_PRIVATE (eom_application);
185+
priv = eom_application->priv;
186+
187+
priv->toolbars_model = egg_toolbars_model_new ();
188+
priv->plugin_engine = eom_plugin_engine_new ();
189+
priv->flags = 0;
181190

182-
egg_toolbars_model_load_names (eom_application->toolbars_model,
191+
egg_toolbars_model_load_names (priv->toolbars_model,
183192
EOM_DATA_DIR "/eom-toolbar.xml");
184193

185194
if (G_LIKELY (dot_dir != NULL))
186-
eom_application->toolbars_file = g_build_filename
195+
priv->toolbars_file = g_build_filename
187196
(dot_dir, "eom_toolbar.xml", NULL);
188197

189-
if (!dot_dir || !egg_toolbars_model_load_toolbars (eom_application->toolbars_model,
190-
eom_application->toolbars_file)) {
198+
if (!dot_dir || !egg_toolbars_model_load_toolbars (priv->toolbars_model,
199+
priv->toolbars_file)) {
191200

192-
egg_toolbars_model_load_toolbars (eom_application->toolbars_model,
201+
egg_toolbars_model_load_toolbars (priv->toolbars_model,
193202
EOM_DATA_DIR "/eom-toolbar.xml");
194203
}
195204

196-
egg_toolbars_model_set_flags (eom_application->toolbars_model, 0,
205+
egg_toolbars_model_set_flags (priv->toolbars_model, 0,
197206
EGG_TB_MODEL_NOT_REMOVABLE);
198207

199208
eom_application_load_accelerators ();
200209

201-
eom_application->extensions = peas_extension_set_new (
202-
PEAS_ENGINE (eom_application->plugin_engine),
210+
priv->extensions = peas_extension_set_new (
211+
PEAS_ENGINE (priv->plugin_engine),
203212
EOM_TYPE_APPLICATION_ACTIVATABLE,
204213
"app", EOM_APPLICATION (eom_application),
205214
NULL);
206-
peas_extension_set_call (eom_application->extensions, "activate");
207-
g_signal_connect (eom_application->extensions, "extension-added",
215+
peas_extension_set_call (priv->extensions, "activate");
216+
g_signal_connect (priv->extensions, "extension-added",
208217
G_CALLBACK (on_extension_added), eom_application);
209-
g_signal_connect (eom_application->extensions, "extension-removed",
218+
g_signal_connect (priv->extensions, "extension-removed",
210219
G_CALLBACK (on_extension_removed), eom_application);
211220
}
212221

@@ -475,7 +484,7 @@ eom_application_get_toolbars_model (EomApplication *application)
475484
{
476485
g_return_val_if_fail (EOM_IS_APPLICATION (application), NULL);
477486

478-
return application->toolbars_model;
487+
return application->priv->toolbars_model;
479488
}
480489

481490
/**
@@ -487,9 +496,9 @@ eom_application_get_toolbars_model (EomApplication *application)
487496
void
488497
eom_application_save_toolbars_model (EomApplication *application)
489498
{
490-
if (G_LIKELY(application->toolbars_file != NULL))
491-
egg_toolbars_model_save_toolbars (application->toolbars_model,
492-
application->toolbars_file,
499+
if (G_LIKELY(application->priv->toolbars_file != NULL))
500+
egg_toolbars_model_save_toolbars (application->priv->toolbars_model,
501+
application->priv->toolbars_file,
493502
"1.0");
494503
}
495504

@@ -502,17 +511,20 @@ eom_application_save_toolbars_model (EomApplication *application)
502511
void
503512
eom_application_reset_toolbars_model (EomApplication *app)
504513
{
514+
EomApplicationPrivate *priv;
505515
g_return_if_fail (EOM_IS_APPLICATION (app));
506516

507-
g_object_unref (app->toolbars_model);
517+
priv = app->priv;
518+
519+
g_object_unref (app->priv->toolbars_model);
508520

509-
app->toolbars_model = egg_toolbars_model_new ();
521+
priv->toolbars_model = egg_toolbars_model_new ();
510522

511-
egg_toolbars_model_load_names (app->toolbars_model,
523+
egg_toolbars_model_load_names (priv->toolbars_model,
512524
EOM_DATA_DIR "/eom-toolbar.xml");
513-
egg_toolbars_model_load_toolbars (app->toolbars_model,
525+
egg_toolbars_model_load_toolbars (priv->toolbars_model,
514526
EOM_DATA_DIR "/eom-toolbar.xml");
515-
egg_toolbars_model_set_flags (app->toolbars_model, 0,
527+
egg_toolbars_model_set_flags (priv->toolbars_model, 0,
516528
EGG_TB_MODEL_NOT_REMOVABLE);
517529
}
518530

src/eom-application.h

Lines changed: 3 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,12 @@
2525
#ifndef __EOM_APPLICATION_H__
2626
#define __EOM_APPLICATION_H__
2727

28-
#include "eom-window.h"
29-
#include "eom-plugin-engine.h"
30-
#include "egg-toolbars-model.h"
31-
3228
#include <glib.h>
3329
#include <glib-object.h>
3430

3531
#include <libpeas/peas-extension-set.h>
32+
#include <gtk/gtk.h>
33+
#include "eom-window.h"
3634

3735
G_BEGIN_DECLS
3836

@@ -52,14 +50,7 @@ typedef struct _EomApplicationPrivate EomApplicationPrivate;
5250
struct _EomApplication {
5351
GtkApplication base_instance;
5452

55-
EggToolbarsModel *toolbars_model;
56-
gchar *toolbars_file;
57-
58-
EomPluginEngine *plugin_engine;
59-
60-
EomStartupFlags flags;
61-
62-
PeasExtensionSet *extensions;
53+
EomApplicationPrivate *priv;
6354
};
6455

6556
struct _EomApplicationClass {
@@ -93,12 +84,6 @@ gboolean eom_application_open_uris (EomApplication *applicati
9384
EomStartupFlags flags,
9485
GError **error);
9586

96-
EggToolbarsModel *eom_application_get_toolbars_model (EomApplication *application);
97-
98-
void eom_application_save_toolbars_model (EomApplication *application);
99-
100-
void eom_application_reset_toolbars_model (EomApplication *app);
101-
10287
G_END_DECLS
10388

10489
#endif /* __EOM_APPLICATION_H__ */

src/eom-window.c

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
#include "eom-print.h"
4545
#include "eom-error-message-area.h"
4646
#include "eom-application.h"
47+
#include "eom-application-internal.h"
4748
#include "eom-thumb-nav.h"
4849
#include "eom-config-keys.h"
4950
#include "eom-job-queue.h"
@@ -4664,12 +4665,12 @@ eom_window_dispose (GObject *object)
46644665
window = EOM_WINDOW (object);
46654666
priv = window->priv;
46664667

4667-
peas_engine_garbage_collect (PEAS_ENGINE (EOM_APP->plugin_engine));
4668+
peas_engine_garbage_collect (PEAS_ENGINE (EOM_APP->priv->plugin_engine));
46684669

46694670
if (priv->extensions != NULL) {
46704671
g_object_unref (priv->extensions);
46714672
priv->extensions = NULL;
4672-
peas_engine_garbage_collect (PEAS_ENGINE (EOM_APP->plugin_engine));
4673+
peas_engine_garbage_collect (PEAS_ENGINE (EOM_APP->priv->plugin_engine));
46734674
}
46744675

46754676
if (priv->page_setup != NULL) {
@@ -4789,7 +4790,7 @@ eom_window_dispose (GObject *object)
47894790
priv->last_save_as_folder = NULL;
47904791
}
47914792

4792-
peas_engine_garbage_collect (PEAS_ENGINE (EOM_APP->plugin_engine));
4793+
peas_engine_garbage_collect (PEAS_ENGINE (EOM_APP->priv->plugin_engine));
47934794

47944795
G_OBJECT_CLASS (eom_window_parent_class)->dispose (object);
47954796
}
@@ -5127,7 +5128,7 @@ eom_window_constructor (GType type,
51275128

51285129
eom_window_construct_ui (EOM_WINDOW (object));
51295130

5130-
priv->extensions = peas_extension_set_new (PEAS_ENGINE (EOM_APP->plugin_engine),
5131+
priv->extensions = peas_extension_set_new (PEAS_ENGINE (EOM_APP->priv->plugin_engine),
51315132
EOM_TYPE_WINDOW_ACTIVATABLE,
51325133
"window",
51335134
EOM_WINDOW (object), NULL);

src/main.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
#include "eom-thumbnail.h"
3636
#include "eom-job-queue.h"
3737
#include "eom-application.h"
38+
#include "eom-application-internal.h"
3839
#include "eom-util.h"
3940

4041
#include <string.h>
@@ -161,7 +162,7 @@ main (int argc, char **argv)
161162
gtk_window_set_default_icon_name ("eom");
162163
g_set_application_name (_("Eye of MATE Image Viewer"));
163164

164-
EOM_APP->flags = flags;
165+
EOM_APP->priv->flags = flags;
165166
if (force_new_instance) {
166167
GApplicationFlags app_flags = g_application_get_flags (G_APPLICATION (EOM_APP));
167168
app_flags |= G_APPLICATION_NON_UNIQUE;

0 commit comments

Comments
 (0)