[gnome-system-monitor] Switch to glib resource framework
- From: Robert Roth <robertroth src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-system-monitor] Switch to glib resource framework
- Date: Sat, 20 Jul 2013 20:25:25 +0000 (UTC)
commit 9f435d87bddd64e7f360c7d785a1dcbc6b7a656d
Author: Stefano Facchini <stefano facchini gmail com>
Date: Mon Jul 15 21:55:10 2013 +0200
Switch to glib resource framework
https://bugzilla.gnome.org/show_bug.cgi?id=704378
Makefile.am | 24 ++++++++++++++----------
configure.ac | 1 -
pixmaps/Makefile.am | 4 ----
pixmaps/side.png | Bin 3429 -> 0 bytes
pixmaps/side.xcf | Bin 29683 -> 0 bytes
src/Makefile.am | 38 +++++++++++++++++++++++---------------
src/gsm.gresource.xml | 14 ++++++++++++++
src/gsm_color_button.c | 18 ++++++++++++------
src/interface.cpp | 15 +++++----------
src/lsof.cpp | 15 ++-------------
src/openfiles.cpp | 5 +----
src/procdialogs.cpp | 10 ++--------
src/procman-app.cpp | 4 +---
13 files changed, 74 insertions(+), 74 deletions(-)
---
diff --git a/Makefile.am b/Makefile.am
index 31d40d9..a376f6f 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,17 +1,20 @@
## Process this file with automake to produce Makefile.in
ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
-SUBDIRS = pixmaps po scripts src help
+SUBDIRS = po scripts src help
-uidir = $(pkgdatadir)
-ui_DATA = data/preferences.ui \
- data/renice.ui \
- data/lsof.ui \
- data/openfiles.ui \
- data/interface.ui \
- data/menus.ui \
- data/popups.ui
+ui_files = \
+ data/preferences.ui \
+ data/renice.ui \
+ data/lsof.ui \
+ data/openfiles.ui \
+ data/interface.ui \
+ data/menus.ui \
+ data/popups.ui
+pixmap_files = \
+ pixmaps/download.svg \
+ pixmaps/upload.svg
runnabledir = $(pkglibexecdir)
runnable_SCRIPTS = scripts/gsm-renice \
@@ -21,7 +24,8 @@ org.gnome.gnome-system-monitor.policy.in: org.gnome.gnome-system-monitor.policy.
$(AM_V_GEN) sed -e "s|\ pkglibexecdir\@|$(pkglibexecdir)|" $< > $@
EXTRA_DIST = \
- $(ui_DATA) \
+ $(ui_files) \
+ $(pixmap_files) \
$(runnable_SCRIPTS) \
org.gnome.gnome-system-monitor.policy.in.in \
gnome-system-monitor.desktop.in \
diff --git a/configure.ac b/configure.ac
index 388bc35..5e63966 100644
--- a/configure.ac
+++ b/configure.ac
@@ -124,7 +124,6 @@ AC_CONFIG_FILES([
Makefile
scripts/Makefile
src/Makefile
-pixmaps/Makefile
po/Makefile.in
help/Makefile
gnome-system-monitor.desktop.in
diff --git a/src/Makefile.am b/src/Makefile.am
index 87603b2..0d2559b 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,15 +1,16 @@
## Process this file with automake to produce Makefile.in
-INCLUDES = \
- -DPROCMAN_DATADIR=\""$(datadir)/procman/"\" \
+AM_CPPFLAGS = \
-DGNOMELOCALEDIR=\""$(datadir)/locale"\" \
- -DDATADIR=\""$(datadir)"\" \
- @PROCMAN_CFLAGS@ \
- @SYSTEMD_CFLAGS@ \
- @WNCK_CFLAGS@
+ -DGSM_LIBEXEC_DIR=\""$(pkglibexecdir)"\" \
+ $(PROCMAN_CFLAGS) \
+ $(SYSTEMD_CFLAGS) \
+ $(WNCK_CFLAGS)
bin_PROGRAMS = gnome-system-monitor
+BUILT_SOURCES = gsm-resources.c
+
gnome_system_monitor_cpp_files = \
argv.cpp \
interface.cpp \
@@ -45,17 +46,20 @@ gnome_system_monitor_h_files = \
defaulttable.h
gnome_system_monitor_SOURCES = \
- $(gnome_system_monitor_h_files) \
- $(gnome_system_monitor_cpp_files) \
- $(gnome_system_monitor_c_files) \
- procman.cpp
+ $(BUILT_SOURCES) \
+ $(gnome_system_monitor_h_files) \
+ $(gnome_system_monitor_cpp_files) \
+ $(gnome_system_monitor_c_files) \
+ procman.cpp
-gnome_system_monitor_LDADD = @PROCMAN_LIBS@ @SYSTEMD_LIBS@ @WNCK_LIBS@
+LDADD = \
+ $(PROCMAN_LIBS) \
+ $(SYSTEMD_LIBS) \
+ $(WNCK_LIBS)
-gnome_system_monitor_CPPFLAGS = -DGSM_DATA_DIR=\""$(pkgdatadir)"\" \
- -DGSM_LIBEXEC_DIR=\""$(pkglibexecdir)"\"
+gsm-resources.c: gsm.gresource.xml $(shell glib-compile-resources --sourcedir=$(top_srcdir)
--generate-dependencies gsm.gresource.xml)
+ $(AM_V_GEN) glib-compile-resources --target=$@ --sourcedir=$(top_srcdir) --generate-source
gsm.gresource.xml
-specdir = $(datadir)/procman
# GSettings schemas, enum files and conversion file
gsettings_ENUM_NAMESPACE = org.gnome.gnome-system-monitor
@@ -68,7 +72,11 @@ gsettings_SCHEMAS = $(gsettings_in_file:.xml.in=.xml)
dist_noinst_DATA = \
$(gsettings_in_file)
+EXTRA_DIST = \
+ gsm.gresource.xml
+
CLEANFILES = \
- $(gsettings_SCHEMAS)
+ $(gsettings_SCHEMAS) \
+ $(BUILT_SOURCES)
MAINTAINERCLEANFILES = $(gsettings_SCHEMAS:.xml=.valid)
diff --git a/src/gsm.gresource.xml b/src/gsm.gresource.xml
new file mode 100644
index 0000000..3a82705
--- /dev/null
+++ b/src/gsm.gresource.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<gresources>
+ <gresource prefix="/org/gnome/gnome-system-monitor">
+ <file preprocess="xml-stripblanks">data/interface.ui</file>
+ <file preprocess="xml-stripblanks">data/lsof.ui</file>
+ <file preprocess="xml-stripblanks">data/openfiles.ui</file>
+ <file preprocess="xml-stripblanks">data/preferences.ui</file>
+ <file preprocess="xml-stripblanks">data/renice.ui</file>
+ <file preprocess="xml-stripblanks">data/menus.ui</file>
+ <file preprocess="xml-stripblanks">data/popups.ui</file>
+ <file preprocess="xml-stripblanks">pixmaps/download.svg</file>
+ <file preprocess="xml-stripblanks">pixmaps/upload.svg</file>
+ </gresource>
+</gresources>
diff --git a/src/gsm_color_button.c b/src/gsm_color_button.c
index 31f24dc..65c856a 100644
--- a/src/gsm_color_button.c
+++ b/src/gsm_color_button.c
@@ -240,18 +240,24 @@ gsm_color_button_class_init (GSMColorButtonClass * klass)
static cairo_surface_t *
-fill_image_buffer_from_file (cairo_t *cr, const char *filePath)
+fill_image_buffer_from_resource (cairo_t *cr, const char *path)
{
+ GBytes *bytes;
+ const guint8 *data;
+ gsize len;
GError *error = NULL;
RsvgHandle *handle;
cairo_surface_t *tmp_surface;
cairo_t *tmp_cr;
- handle = rsvg_handle_new_from_file (filePath, &error);
+ bytes = g_resources_lookup_data (path, 0 , NULL);
+ data = g_bytes_get_data (bytes, &len);
+
+ handle = rsvg_handle_new_from_data (data, len, &error);
if (handle == NULL) {
- g_warning("rsvg_handle_new_from_file(\"%s\") failed: %s",
- filePath, (error ? error->message : "unknown error"));
+ g_warning("rsvg_handle_new_from_data(\"%s\") failed: %s",
+ path, (error ? error->message : "unknown error"));
if (error)
g_error_free(error);
return NULL;
@@ -383,7 +389,7 @@ render (GtkWidget * widget)
case GSMCP_TYPE_NETWORK_IN:
if (color_button->priv->image_buffer == NULL)
color_button->priv->image_buffer =
- fill_image_buffer_from_file (cr, DATADIR "/pixmaps/gnome-system-monitor/download.svg");
+ fill_image_buffer_from_resource (cr, "/org/gnome/gnome-system-monitor/pixmaps/download.svg");
gtk_widget_set_size_request (widget, 32, 32);
cairo_move_to (cr, 8.5, 1.5);
cairo_line_to (cr, 23.5, 1.5);
@@ -414,7 +420,7 @@ render (GtkWidget * widget)
case GSMCP_TYPE_NETWORK_OUT:
if (color_button->priv->image_buffer == NULL)
color_button->priv->image_buffer =
- fill_image_buffer_from_file (cr, DATADIR "/pixmaps/gnome-system-monitor/upload.svg");
+ fill_image_buffer_from_resource (cr, "/org/gnome/gnome-system-monitor/pixmaps/upload.svg");
gtk_widget_set_size_request (widget, 32, 32);
cairo_move_to (cr, 16.5, 1.5);
cairo_line_to (cr, 29.5, 17.5);
diff --git a/src/interface.cpp b/src/interface.cpp
index 4814276..8e3b535 100644
--- a/src/interface.cpp
+++ b/src/interface.cpp
@@ -317,11 +317,8 @@ create_main_window (ProcmanApp *app)
GtkAction *action;
GtkWidget *notebook;
- gchar* filename = g_build_filename (GSM_DATA_DIR, "interface.ui", NULL);
-
GtkBuilder *builder = gtk_builder_new();
- gtk_builder_add_from_file (builder, filename, NULL);
- g_free (filename);
+ gtk_builder_add_from_resource (builder, "/org/gnome/gnome-system-monitor/data/interface.ui", NULL);
main_window = GTK_WIDGET (gtk_builder_get_object (builder, "main_window"));
gtk_window_set_application (GTK_WINDOW (main_window), app->gobj());
@@ -358,14 +355,12 @@ create_main_window (ProcmanApp *app)
gtk_window_add_accel_group (GTK_WINDOW (main_window),
gtk_ui_manager_get_accel_group (app->uimanager));
- filename = g_build_filename (GSM_DATA_DIR, "popups.ui", NULL);
-
- if (!gtk_ui_manager_add_ui_from_file (app->uimanager,
- filename,
- NULL)) {
+ if (!gtk_ui_manager_add_ui_from_resource (app->uimanager,
+ "/org/gnome/gnome-system-monitor/data/popups.ui",
+ NULL)) {
g_error("building menus failed");
}
- g_free (filename);
+
app->action_group = gtk_action_group_new ("ProcmanActions");
gtk_action_group_set_translation_domain (app->action_group, NULL);
gtk_action_group_add_actions (app->action_group,
diff --git a/src/lsof.cpp b/src/lsof.cpp
index c9406dc..c8e10a6 100644
--- a/src/lsof.cpp
+++ b/src/lsof.cpp
@@ -300,25 +300,15 @@ void procman_lsof(ProcmanApp *app)
gtk_tree_view_append_column(GTK_TREE_VIEW(tree), column);
- GtkWidget *dialog; /* = gtk_dialog_new_with_buttons(_("Search for Open Files"), NULL,
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE,
- NULL); */
- //dialog = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- gchar* filename = g_build_filename (GSM_DATA_DIR, "lsof.ui", NULL);
+ GtkWidget *dialog;
GtkBuilder *builder = gtk_builder_new();
- gtk_builder_add_from_file (builder, filename, NULL);
+ gtk_builder_add_from_resource (builder, "/org/gnome/gnome-system-monitor/data/lsof.ui", NULL);
dialog = GTK_WIDGET (gtk_builder_get_object (builder, "lsof_dialog"));
gtk_window_set_transient_for(GTK_WINDOW(dialog), GTK_WINDOW(app->main_window));
- // entry = sexy_icon_entry_new();
- // sexy_icon_entry_add_clear_button(SEXY_ICON_ENTRY(entry));
- // GtkWidget *icon = gtk_image_new_from_stock(GTK_STOCK_FIND, GTK_ICON_SIZE_MENU);
- // sexy_icon_entry_set_icon(SEXY_ICON_ENTRY(entry), SEXY_ICON_ENTRY_PRIMARY, GTK_IMAGE(icon));
-
GtkWidget *entry = GTK_WIDGET (gtk_builder_get_object (builder, "entry"));
GtkWidget *search_button = GTK_WIDGET (gtk_builder_get_object (builder, "search_button"));
GtkWidget *clear_button = GTK_WIDGET (gtk_builder_get_object (builder, "clear_button"));
@@ -357,6 +347,5 @@ void procman_lsof(ProcmanApp *app)
gtk_widget_show_all(dialog);
g_object_unref (G_OBJECT (builder));
- g_free (filename);
}
diff --git a/src/openfiles.cpp b/src/openfiles.cpp
index 74f4f1f..65cc286 100644
--- a/src/openfiles.cpp
+++ b/src/openfiles.cpp
@@ -333,10 +333,8 @@ create_single_openfiles_dialog (GtkTreeModel *model, GtkTreePath *path,
if (!info)
return;
- gchar* filename = g_build_filename (GSM_DATA_DIR, "openfiles.ui", NULL);
-
GtkBuilder *builder = gtk_builder_new();
- gtk_builder_add_from_file (builder, filename, NULL);
+ gtk_builder_add_from_resource (builder, "/org/gnome/gnome-system-monitor/data/openfiles.ui", NULL);
openfilesdialog = GTK_WIDGET (gtk_builder_get_object (builder, "openfiles_dialog"));
@@ -370,7 +368,6 @@ create_single_openfiles_dialog (GtkTreeModel *model, GtkTreePath *path,
update_openfiles_dialog (tree);
g_object_unref (G_OBJECT (builder));
- g_free (filename);
}
diff --git a/src/procdialogs.cpp b/src/procdialogs.cpp
index e02177b..a5878dd 100644
--- a/src/procdialogs.cpp
+++ b/src/procdialogs.cpp
@@ -161,10 +161,8 @@ procdialog_create_renice_dialog (ProcmanApp *app)
if (!info)
return;
- gchar* filename = g_build_filename (GSM_DATA_DIR, "renice.ui", NULL);
-
builder = gtk_builder_new();
- gtk_builder_add_from_file (builder, filename, NULL);
+ gtk_builder_add_from_resource (builder, "/org/gnome/gnome-system-monitor/data/renice.ui", NULL);
renice_dialog = GTK_WIDGET (gtk_builder_get_object (builder, "renice_dialog"));
@@ -204,7 +202,6 @@ procdialog_create_renice_dialog (ProcmanApp *app)
gtk_builder_connect_signals (builder, NULL);
g_object_unref (G_OBJECT (builder));
- g_free (filename);
}
static void
@@ -405,10 +402,8 @@ procdialog_create_preferences_dialog (ProcmanApp *app)
if (prefs_dialog)
return;
- gchar* filename = g_build_filename (GSM_DATA_DIR, "preferences.ui", NULL);
-
builder = gtk_builder_new();
- gtk_builder_add_from_file (builder, filename, NULL);
+ gtk_builder_add_from_resource (builder, "/org/gnome/gnome-system-monitor/data/preferences.ui", NULL);
prefs_dialog = GTK_WIDGET (gtk_builder_get_object (builder, "preferences_dialog"));
@@ -487,7 +482,6 @@ procdialog_create_preferences_dialog (ProcmanApp *app)
}
gtk_builder_connect_signals (builder, NULL);
g_object_unref (G_OBJECT (builder));
- g_free (filename);
}
diff --git a/src/procman-app.cpp b/src/procman-app.cpp
index 00d3e04..a829730 100644
--- a/src/procman-app.cpp
+++ b/src/procman-app.cpp
@@ -670,9 +670,7 @@ void ProcmanApp::on_startup()
action->signal_activate().connect(sigc::mem_fun(*this, &ProcmanApp::on_preferences_activate));
add_action(action);
- char* filename = g_build_filename (GSM_DATA_DIR, "menus.ui", NULL);
- Glib::RefPtr<Gtk::Builder> builder = Gtk::Builder::create_from_file(filename);
- g_free (filename);
+ Glib::RefPtr<Gtk::Builder> builder =
Gtk::Builder::create_from_resource("/org/gnome/gnome-system-monitor/data/menus.ui");
Glib::RefPtr<Gio::Menu> menu = Glib::RefPtr<Gio::Menu>::cast_static(builder->get_object ("app-menu"));
set_app_menu (menu);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]