[eog] EogApplication: Make most members private
- From: Felix Riemann <friemann src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [eog] EogApplication: Make most members private
- Date: Sun, 12 Aug 2012 14:51:18 +0000 (UTC)
commit e6470787023be114bcfe9fa923e561bd40634161
Author: Felix Riemann <friemann gnome org>
Date: Sun Aug 12 16:35:46 2012 +0200
EogApplication: Make most members private
This allows plugin usage without installing toolbar editor headers.
src/Makefile.am | 1 +
src/eog-application-internal.h | 68 +++++++++++++++++++++++++
src/eog-application.c | 109 ++++++++++++++++++++++-----------------
src/eog-application.h | 25 +--------
src/eog-window.c | 9 ++--
src/main.c | 3 +-
6 files changed, 140 insertions(+), 75 deletions(-)
---
diff --git a/src/Makefile.am b/src/Makefile.am
index 969465b..569cad8 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -18,6 +18,7 @@ MARSHAL_OUTPUT = \
eog-marshal.c
NOINST_H_FILES = \
+ eog-application-internal.h \
eog-close-confirmation-dialog.h \
eog-config-keys.h \
eog-error-message-area.h \
diff --git a/src/eog-application-internal.h b/src/eog-application-internal.h
new file mode 100644
index 0000000..dc02977
--- /dev/null
+++ b/src/eog-application-internal.h
@@ -0,0 +1,68 @@
+/* Eye Of Gnome - Application Facade (internal)
+ *
+ * Copyright (C) 2006-2012 The Free Software Foundation
+ *
+ * Author: Lucas Rocha <lucasr gnome org>
+ *
+ * Based on evince code (shell/ev-application.h) by:
+ * - Martin Kretzschmar <martink gnome org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __EOG_APPLICATION_INTERNAL_H__
+#define __EOG_APPLICATION_INTERNAL_H__
+
+#include <glib.h>
+#include <glib-object.h>
+
+#include <libpeas/peas-extension-set.h>
+
+#include "eog-application.h"
+#include "eog-plugin-engine.h"
+#include "egg-toolbars-model.h"
+#include "eog-window.h"
+
+#include "totem-scrsaver.h"
+
+G_BEGIN_DECLS
+
+struct _EogApplicationPrivate {
+ EggToolbarsModel *toolbars_model;
+ gchar *toolbars_file;
+ EogPluginEngine *plugin_engine;
+
+ TotemScrsaver *scr_saver;
+ EogStartupFlags flags;
+
+ GSettings *ui_settings;
+
+ PeasExtensionSet *extensions;
+};
+
+
+EggToolbarsModel *eog_application_get_toolbars_model (EogApplication *application);
+
+void eog_application_save_toolbars_model (EogApplication *application);
+
+void eog_application_reset_toolbars_model (EogApplication *app);
+
+void eog_application_screensaver_enable (EogApplication *application);
+
+void eog_application_screensaver_disable (EogApplication *application);
+
+G_END_DECLS
+
+#endif /* __EOG_APPLICATION_INTERNAL_H__ */
diff --git a/src/eog-application.c b/src/eog-application.c
index 0716d8e..dde8e67 100644
--- a/src/eog-application.c
+++ b/src/eog-application.c
@@ -32,6 +32,7 @@
#include "eog-window.h"
#include "eog-application.h"
#include "eog-application-activatable.h"
+#include "eog-application-internal.h"
#include "eog-util.h"
#include "totem-scrsaver.h"
@@ -165,6 +166,7 @@ _settings_map_set_variant (const GValue *value,
static void
eog_application_init_app_menu (EogApplication *application)
{
+ EogApplicationPrivate *priv = application->priv;
GtkBuilder *builder;
GError *error = NULL;
GAction *action;
@@ -187,7 +189,7 @@ eog_application_init_app_menu (EogApplication *application)
action = g_action_map_lookup_action (G_ACTION_MAP (application),
"view-gallery");
- g_settings_bind_with_mapping (application->ui_settings,
+ g_settings_bind_with_mapping (priv->ui_settings,
EOG_CONF_UI_IMAGE_GALLERY, action,
"state", G_SETTINGS_BIND_DEFAULT,
_settings_map_get_bool_variant,
@@ -196,7 +198,7 @@ eog_application_init_app_menu (EogApplication *application)
action = g_action_map_lookup_action (G_ACTION_MAP (application),
"toolbar");
- g_settings_bind_with_mapping (application->ui_settings,
+ g_settings_bind_with_mapping (priv->ui_settings,
EOG_CONF_UI_TOOLBAR, action, "state",
G_SETTINGS_BIND_DEFAULT,
_settings_map_get_bool_variant,
@@ -204,7 +206,7 @@ eog_application_init_app_menu (EogApplication *application)
NULL, NULL);
action = g_action_map_lookup_action (G_ACTION_MAP (application),
"view-sidebar");
- g_settings_bind_with_mapping (application->ui_settings,
+ g_settings_bind_with_mapping (priv->ui_settings,
EOG_CONF_UI_SIDEBAR, action, "state",
G_SETTINGS_BIND_DEFAULT,
_settings_map_get_bool_variant,
@@ -212,7 +214,7 @@ eog_application_init_app_menu (EogApplication *application)
NULL, NULL);
action = g_action_map_lookup_action (G_ACTION_MAP (application),
"view-statusbar");
- g_settings_bind_with_mapping (application->ui_settings,
+ g_settings_bind_with_mapping (priv->ui_settings,
EOG_CONF_UI_STATUSBAR, action, "state",
G_SETTINGS_BIND_DEFAULT,
_settings_map_get_bool_variant,
@@ -235,7 +237,7 @@ eog_application_activate (GApplication *application)
{
eog_application_open_window (EOG_APPLICATION (application),
GDK_CURRENT_TIME,
- EOG_APPLICATION (application)->flags,
+ EOG_APPLICATION (application)->priv->flags,
NULL);
}
@@ -252,7 +254,7 @@ eog_application_open (GApplication *application,
eog_application_open_file_list (EOG_APPLICATION (application),
list, GDK_CURRENT_TIME,
- EOG_APPLICATION (application)->flags,
+ EOG_APPLICATION (application)->priv->flags,
NULL);
}
@@ -260,22 +262,23 @@ static void
eog_application_finalize (GObject *object)
{
EogApplication *application = EOG_APPLICATION (object);
+ EogApplicationPrivate *priv = application->priv;
- if (application->toolbars_model) {
- g_object_unref (application->toolbars_model);
- application->toolbars_model = NULL;
- g_free (application->toolbars_file);
- application->toolbars_file = NULL;
+ if (priv->toolbars_model) {
+ g_object_unref (priv->toolbars_model);
+ priv->toolbars_model = NULL;
+ g_free (priv->toolbars_file);
+ priv->toolbars_file = NULL;
}
- g_clear_object (&application->extensions);
+ g_clear_object (&priv->extensions);
- if (application->plugin_engine) {
- g_object_unref (application->plugin_engine);
- application->plugin_engine = NULL;
+ if (priv->plugin_engine) {
+ g_object_unref (priv->plugin_engine);
+ priv->plugin_engine = NULL;
}
- g_clear_object (&application->ui_settings);
+ g_clear_object (&priv->ui_settings);
eog_application_save_accelerators ();
}
@@ -289,10 +292,10 @@ eog_application_add_platform_data (GApplication *application,
G_APPLICATION_CLASS (eog_application_parent_class)->add_platform_data (application,
builder);
- if (app->flags) {
+ if (app->priv->flags) {
g_variant_builder_add (builder, "{sv}",
"eog-application-startup-flags",
- g_variant_new_byte (app->flags));
+ g_variant_new_byte (app->priv->flags));
}
}
@@ -304,11 +307,11 @@ eog_application_before_emit (GApplication *application,
const gchar *key;
GVariant *value;
- EOG_APPLICATION (application)->flags = 0;
+ EOG_APPLICATION (application)->priv->flags = 0;
g_variant_iter_init (&iter, platform_data);
while (g_variant_iter_loop (&iter, "{&sv}", &key, &value)) {
if (strcmp (key, "eog-application-startup-flags") == 0) {
- EOG_APPLICATION (application)->flags = g_variant_get_byte (value);
+ EOG_APPLICATION (application)->priv->flags = g_variant_get_byte (value);
}
}
@@ -322,6 +325,9 @@ eog_application_class_init (EogApplicationClass *eog_application_class)
GApplicationClass *application_class;
GObjectClass *object_class;
+ g_type_class_add_private (eog_application_class,
+ sizeof (EogApplicationPrivate));
+
application_class = (GApplicationClass *) eog_application_class;
object_class = (GObjectClass *) eog_application_class;
@@ -355,44 +361,48 @@ on_extension_removed (PeasExtensionSet *set,
static void
eog_application_init (EogApplication *eog_application)
{
+ EogApplicationPrivate *priv;
const gchar *dot_dir = eog_util_dot_dir ();
eog_session_init (eog_application);
- eog_application->toolbars_model = egg_toolbars_model_new ();
- eog_application->plugin_engine = eog_plugin_engine_new ();
- eog_application->flags = 0;
+ eog_application->priv = EOG_APPLICATION_GET_PRIVATE (eog_application);
+ priv = eog_application->priv;
+
+ priv->toolbars_model = egg_toolbars_model_new ();
+ priv->plugin_engine = eog_plugin_engine_new ();
+ priv->flags = 0;
- eog_application->ui_settings = g_settings_new (EOG_CONF_UI);
+ priv->ui_settings = g_settings_new (EOG_CONF_UI);
- egg_toolbars_model_load_names (eog_application->toolbars_model,
+ egg_toolbars_model_load_names (priv->toolbars_model,
EOG_DATA_DIR "/eog-toolbar.xml");
if (G_LIKELY (dot_dir != NULL))
- eog_application->toolbars_file = g_build_filename
+ priv->toolbars_file = g_build_filename
(dot_dir, "eog_toolbar.xml", NULL);
- if (!dot_dir || !egg_toolbars_model_load_toolbars (eog_application->toolbars_model,
- eog_application->toolbars_file)) {
+ if (!dot_dir || !egg_toolbars_model_load_toolbars (priv->toolbars_model,
+ priv->toolbars_file)) {
- egg_toolbars_model_load_toolbars (eog_application->toolbars_model,
+ egg_toolbars_model_load_toolbars (priv->toolbars_model,
EOG_DATA_DIR "/eog-toolbar.xml");
}
- egg_toolbars_model_set_flags (eog_application->toolbars_model, 0,
+ egg_toolbars_model_set_flags (priv->toolbars_model, 0,
EGG_TB_MODEL_NOT_REMOVABLE);
eog_application_load_accelerators ();
- eog_application->extensions = peas_extension_set_new (
- PEAS_ENGINE (eog_application->plugin_engine),
+ priv->extensions = peas_extension_set_new (
+ PEAS_ENGINE (priv->plugin_engine),
EOG_TYPE_APPLICATION_ACTIVATABLE,
"app", EOG_APPLICATION (eog_application),
NULL);
- peas_extension_set_call (eog_application->extensions, "activate");
- g_signal_connect (eog_application->extensions, "extension-added",
+ peas_extension_set_call (priv->extensions, "activate");
+ g_signal_connect (priv->extensions, "extension-added",
G_CALLBACK (on_extension_added), eog_application);
- g_signal_connect (eog_application->extensions, "extension-removed",
+ g_signal_connect (priv->extensions, "extension-removed",
G_CALLBACK (on_extension_removed), eog_application);
}
@@ -678,7 +688,7 @@ eog_application_get_toolbars_model (EogApplication *application)
{
g_return_val_if_fail (EOG_IS_APPLICATION (application), NULL);
- return application->toolbars_model;
+ return application->priv->toolbars_model;
}
/**
@@ -690,9 +700,9 @@ eog_application_get_toolbars_model (EogApplication *application)
void
eog_application_save_toolbars_model (EogApplication *application)
{
- if (G_LIKELY(application->toolbars_file != NULL))
- egg_toolbars_model_save_toolbars (application->toolbars_model,
- application->toolbars_file,
+ if (G_LIKELY(application->priv->toolbars_file != NULL))
+ egg_toolbars_model_save_toolbars (application->priv->toolbars_model,
+ application->priv->toolbars_file,
"1.0");
}
@@ -705,17 +715,20 @@ eog_application_save_toolbars_model (EogApplication *application)
void
eog_application_reset_toolbars_model (EogApplication *app)
{
+ EogApplicationPrivate *priv;
g_return_if_fail (EOG_IS_APPLICATION (app));
- g_object_unref (app->toolbars_model);
+ priv = app->priv;
+
+ g_object_unref (app->priv->toolbars_model);
- app->toolbars_model = egg_toolbars_model_new ();
+ priv->toolbars_model = egg_toolbars_model_new ();
- egg_toolbars_model_load_names (app->toolbars_model,
+ egg_toolbars_model_load_names (priv->toolbars_model,
EOG_DATA_DIR "/eog-toolbar.xml");
- egg_toolbars_model_load_toolbars (app->toolbars_model,
+ egg_toolbars_model_load_toolbars (priv->toolbars_model,
EOG_DATA_DIR "/eog-toolbar.xml");
- egg_toolbars_model_set_flags (app->toolbars_model, 0,
+ egg_toolbars_model_set_flags (priv->toolbars_model, 0,
EGG_TB_MODEL_NOT_REMOVABLE);
}
@@ -729,8 +742,8 @@ eog_application_reset_toolbars_model (EogApplication *app)
void
eog_application_screensaver_enable (EogApplication *application)
{
- if (application->scr_saver)
- totem_scrsaver_enable (application->scr_saver);
+ if (application->priv->scr_saver)
+ totem_scrsaver_enable (application->priv->scr_saver);
}
/**
@@ -743,8 +756,8 @@ eog_application_screensaver_enable (EogApplication *application)
void
eog_application_screensaver_disable (EogApplication *application)
{
- if (application->scr_saver)
- totem_scrsaver_disable (application->scr_saver);
+ if (application->priv->scr_saver)
+ totem_scrsaver_disable (application->priv->scr_saver);
}
static void
diff --git a/src/eog-application.h b/src/eog-application.h
index 36122d5..82377d6 100644
--- a/src/eog-application.h
+++ b/src/eog-application.h
@@ -25,16 +25,12 @@
#ifndef __EOG_APPLICATION_H__
#define __EOG_APPLICATION_H__
-#include "eog-window.h"
-#include "egg-toolbars-model.h"
-#include "eog-plugin-engine.h"
-
-#include "totem-scrsaver.h"
#include <glib.h>
#include <glib-object.h>
-#include <libpeas/peas-extension-set.h>
+#include <gtk/gtk.h>
+#include "eog-window.h"
G_BEGIN_DECLS
@@ -54,16 +50,7 @@ typedef struct _EogApplicationPrivate EogApplicationPrivate;
struct _EogApplication {
GtkApplication base_instance;
- EggToolbarsModel *toolbars_model;
- gchar *toolbars_file;
- EogPluginEngine *plugin_engine;
-
- TotemScrsaver *scr_saver;
- EogStartupFlags flags;
-
- GSettings *ui_settings;
-
- PeasExtensionSet *extensions;
+ EogApplicationPrivate *priv;
};
struct _EogApplicationClass {
@@ -97,12 +84,6 @@ gboolean eog_application_open_uris (EogApplication *applicati
EogStartupFlags flags,
GError **error);
-EggToolbarsModel *eog_application_get_toolbars_model (EogApplication *application);
-
-void eog_application_save_toolbars_model (EogApplication *application);
-
-void eog_application_reset_toolbars_model (EogApplication *app);
-
void eog_application_screensaver_enable (EogApplication *application);
void eog_application_screensaver_disable (EogApplication *application);
diff --git a/src/eog-window.c b/src/eog-window.c
index 064fda3..2b974fc 100644
--- a/src/eog-window.c
+++ b/src/eog-window.c
@@ -44,6 +44,7 @@
#include "eog-print.h"
#include "eog-error-message-area.h"
#include "eog-application.h"
+#include "eog-application-internal.h"
#include "eog-thumb-nav.h"
#include "eog-config-keys.h"
#include "eog-job-queue.h"
@@ -4738,12 +4739,12 @@ eog_window_dispose (GObject *object)
window = EOG_WINDOW (object);
priv = window->priv;
- peas_engine_garbage_collect (PEAS_ENGINE (EOG_APP->plugin_engine));
+ peas_engine_garbage_collect (PEAS_ENGINE (EOG_APP->priv->plugin_engine));
if (priv->extensions != NULL) {
g_object_unref (priv->extensions);
priv->extensions = NULL;
- peas_engine_garbage_collect (PEAS_ENGINE (EOG_APP->plugin_engine));
+ peas_engine_garbage_collect (PEAS_ENGINE (EOG_APP->priv->plugin_engine));
}
if (priv->store != NULL) {
@@ -4855,7 +4856,7 @@ eog_window_dispose (GObject *object)
priv->page_setup = NULL;
}
- peas_engine_garbage_collect (PEAS_ENGINE (EOG_APP->plugin_engine));
+ peas_engine_garbage_collect (PEAS_ENGINE (EOG_APP->priv->plugin_engine));
G_OBJECT_CLASS (eog_window_parent_class)->dispose (object);
}
@@ -5193,7 +5194,7 @@ eog_window_constructor (GType type,
eog_window_construct_ui (EOG_WINDOW (object));
- priv->extensions = peas_extension_set_new (PEAS_ENGINE (EOG_APP->plugin_engine),
+ priv->extensions = peas_extension_set_new (PEAS_ENGINE (EOG_APP->priv->plugin_engine),
EOG_TYPE_WINDOW_ACTIVATABLE,
"window",
EOG_WINDOW (object), NULL);
diff --git a/src/main.c b/src/main.c
index 8736f5d..0f1830a 100644
--- a/src/main.c
+++ b/src/main.c
@@ -35,6 +35,7 @@
#include "eog-thumbnail.h"
#include "eog-job-queue.h"
#include "eog-application.h"
+#include "eog-application-internal.h"
#include "eog-plugin-engine.h"
#include "eog-util.h"
@@ -180,7 +181,7 @@ main (int argc, char **argv)
"gtk-application-prefer-dark-theme", TRUE,
NULL);
- EOG_APP->flags = flags;
+ EOG_APP->priv->flags = flags;
if (force_new_instance) {
GApplicationFlags app_flags = g_application_get_flags (G_APPLICATION (EOG_APP));
app_flags |= G_APPLICATION_NON_UNIQUE;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]