[arch-commits] Commit in sensors-applet/trunk (3 files)

Balló György bgyorgy at archlinux.org
Thu Oct 22 12:37:13 UTC 2020


    Date: Thursday, October 22, 2020 @ 12:37:12
  Author: bgyorgy
Revision: 729070

upgpkg: sensors-applet 3.0.0+13+g0728426-4: Port to libgnome-panel

Added:
  sensors-applet/trunk/fix-crash-destroying-active-sensor.patch
  sensors-applet/trunk/port-to-libgnome-panel.patch
Modified:
  sensors-applet/trunk/PKGBUILD

------------------------------------------+
 PKGBUILD                                 |   12 
 fix-crash-destroying-active-sensor.patch |   56 ++
 port-to-libgnome-panel.patch             |  685 +++++++++++++++++++++++++++++
 3 files changed, 750 insertions(+), 3 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2020-10-22 11:44:23 UTC (rev 729069)
+++ PKGBUILD	2020-10-22 12:37:12 UTC (rev 729070)
@@ -2,7 +2,7 @@
 
 pkgname=sensors-applet
 pkgver=3.0.0+13+g0728426
-pkgrel=3
+pkgrel=4
 pkgdesc="Applet for GNOME Panel to display readings from hardware sensors, including CPU temperature, fan speeds and voltage readings"
 arch=('x86_64')
 url="http://sensors-applet.sourceforge.net/"
@@ -11,8 +11,12 @@
 makedepends=('git' 'gnome-common' 'intltool' 'yelp-tools')
 optdepends=('hddtemp: get HDD temperatures')
 _commit=07284262768e3a7066da09845370d78526be6bc1  # master
-source=("$pkgname::git+https://git.code.sf.net/p/sensors-applet/code#commit=$_commit")
-sha256sums=('SKIP')
+source=("$pkgname::git+https://git.code.sf.net/p/sensors-applet/code#commit=$_commit"
+        fix-crash-destroying-active-sensor.patch
+        port-to-libgnome-panel.patch)
+sha256sums=('SKIP'
+            '9c4cc2accf326c44cb625f5db0b82a782351cdf8829f1a4067a30f287b6b7156'
+            'cb0e35e0d6e6568f14836da7e5b78154bd4d9a4127f0f6dd476e4f7c9d62339d')
 
 pkgver() {
   cd $pkgname
@@ -21,6 +25,8 @@
 
 prepare() {
   cd $pkgname
+  patch -Np1 -i ../port-to-libgnome-panel.patch
+  patch -Np1 -i ../fix-crash-destroying-active-sensor.patch
   NOCONFIGURE=1 ./autogen.sh
 }
 

Added: fix-crash-destroying-active-sensor.patch
===================================================================
--- fix-crash-destroying-active-sensor.patch	                        (rev 0)
+++ fix-crash-destroying-active-sensor.patch	2020-10-22 12:37:12 UTC (rev 729070)
@@ -0,0 +1,56 @@
+From: Alberts Muktupāvels <alberts.muktupavels at gmail.com>
+Date: Sat, 28 Mar 2020 19:38:07 +0200
+Subject: fix crash destroying active sensor
+
+---
+ sensors-applet/active-sensor.c | 19 ++++++++++++++-----
+ 1 file changed, 14 insertions(+), 5 deletions(-)
+
+diff --git a/sensors-applet/active-sensor.c b/sensors-applet/active-sensor.c
+index 725e050..9fe4718 100644
+--- a/sensors-applet/active-sensor.c
++++ b/sensors-applet/active-sensor.c
+@@ -347,17 +347,17 @@ static void active_sensor_update_graph(ActiveSensor *as) {
+ 
+ void active_sensor_destroy(ActiveSensor *active_sensor) {
+         g_debug("-- destroying active sensor label...");
+-        gtk_widget_destroy(active_sensor->label);
++        g_object_unref(active_sensor->label);
+ 
+         g_debug("-- destroying active sensor icon..");
+-        gtk_widget_destroy(active_sensor->icon);
++        g_object_unref(active_sensor->icon);
+ 
+         g_debug("-- destroying active sensor value...");
+-        gtk_widget_destroy(active_sensor->value);
++        g_object_unref(active_sensor->value);
+ 
+         g_debug("-- destroying active sensor graph and frame...");
+-        gtk_widget_destroy(active_sensor->graph);
+-        gtk_widget_destroy(active_sensor->graph_frame);
++        g_object_unref(active_sensor->graph);
++        g_object_unref(active_sensor->graph_frame);
+ 
+         g_debug("-- destroying active sensor values...");
+         g_free(active_sensor->sensor_values);
+@@ -450,11 +450,20 @@ ActiveSensor *active_sensor_new(SensorsApplet *sensors_applet,
+         }
+ 
+         active_sensor->label = gtk_label_new("");
++        g_object_ref_sink (active_sensor->label);
++
+         active_sensor->value = gtk_label_new("");
++        g_object_ref_sink (active_sensor->value);
++
+         active_sensor->icon = gtk_image_new();
++        g_object_ref_sink (active_sensor->icon);
+ 
+         active_sensor->graph = gtk_drawing_area_new();
++        g_object_ref_sink (active_sensor->graph);
++
+         active_sensor->graph_frame = gtk_frame_new(NULL);
++        g_object_ref_sink (active_sensor->graph_frame);
++
+         gtk_frame_set_shadow_type(GTK_FRAME(active_sensor->graph_frame),
+                                   GTK_SHADOW_IN);
+         gtk_container_add(GTK_CONTAINER(active_sensor->graph_frame),

Added: port-to-libgnome-panel.patch
===================================================================
--- port-to-libgnome-panel.patch	                        (rev 0)
+++ port-to-libgnome-panel.patch	2020-10-22 12:37:12 UTC (rev 729070)
@@ -0,0 +1,685 @@
+From: Alberts Muktupāvels <alberts.muktupavels at gmail.com>
+Date: Thu, 26 Mar 2020 18:33:32 +0200
+Subject: port to libgnome-panel
+
+---
+ Makefile.am                                        |  20 ---
+ SensorsApplet.xml                                  |  32 ++--
+ configure.ac                                       |  10 +-
+ org.gnome.applets.SensorsApplet.panel-applet.in.in |  17 ---
+ po/POTFILES.in                                     |   1 +
+ po/POTFILES.skip                                   |   1 -
+ sensors-applet/Makefile.am                         |   8 +-
+ sensors-applet/active-sensor.c                     |   9 +-
+ sensors-applet/main.c                              |  45 ------
+ sensors-applet/sensors-applet.c                    | 164 ++++++++++-----------
+ sensors-applet/sensors-applet.h                    |  11 +-
+ sensors-applet/sensors-module.c                    |  62 ++++++++
+ 12 files changed, 179 insertions(+), 201 deletions(-)
+ delete mode 100644 org.gnome.applets.SensorsApplet.panel-applet.in.in
+ delete mode 100644 sensors-applet/main.c
+ create mode 100644 sensors-applet/sensors-module.c
+
+diff --git a/Makefile.am b/Makefile.am
+index 2ff4740..fa8686b 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -2,30 +2,10 @@ ACLOCAL_AMFLAGS=-I m4
+ 
+ SUBDIRS = sensors-applet lib plugins pixmaps po help
+ 
+-appletdir = $(LIBPANEL_APPLET_DIR)
+-applet_in_files = org.gnome.applets.SensorsApplet.panel-applet.in
+-applet_DATA = $(applet_in_files:.panel-applet.in=.panel-applet)
+-
+-APPLET_LOCATION=$(pkglibdir)/$(LIBPANEL_APPLET_API_VERSION)/libsensors-applet.so
+-
+-$(applet_in_files): $(applet_in_files).in Makefile
+-	$(AM_V_GEN)sed \
+-	-e "s|\@APPLET_LOCATION\@|$(APPLET_LOCATION)|" \
+-	-e "s|\@VERSION\@|$(PACKAGE_VERSION)|" \
+-	$< > $@
+-
+- at INTLTOOL_SERVER_RULE@
+-
+ uidir 		= $(pkgdatadir)/ui
+ ui_DATA 	= SensorsApplet.xml
+ 
+-%.panel-applet: %.panel-applet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*po) ; $(INTLTOOL_MERGE) $(top_srcdir)/po $< $@ -d -u -c $(top_builddir)/po/.intltool-merge-cache
+-
+-CLEANFILES = $(applet_DATA) $(applet_DATA).in $(schemas_DATA)
+-
+ EXTRA_DIST 	= $(ui_DATA) \
+-		  $(applet_in_files:.panel-applet.in=.panel-applet.in.in) \
+-		  $(service_in_files) \
+ 		  intltool-merge.in intltool-extract.in intltool-update.in
+ 
+ DISTCLEANFILES	=	intltool-extract \
+diff --git a/SensorsApplet.xml b/SensorsApplet.xml
+index 41e1d1f..d90309c 100644
+--- a/SensorsApplet.xml
++++ b/SensorsApplet.xml
+@@ -1,14 +1,18 @@
+-<section>
+-       <item>
+-               <attribute name="label" translatable="yes">_Preferences</attribute>
+-               <attribute name="action">sensorsapplet.preferences</attribute>
+-       </item>
+-       <item>
+-               <attribute name="label" translatable="yes">_Help</attribute>
+-               <attribute name="action">sensorsapplet.help</attribute>
+-       </item>
+-       <item>
+-               <attribute name="label" translatable="yes">_About</attribute>
+-               <attribute name="action">sensorsapplet.about</attribute>
+-       </item>
+-</section>
++<interface>
++  <menu id="sensorsapplet-menu">
++    <section>
++      <item>
++        <attribute name="label" translatable="yes">_Preferences</attribute>
++        <attribute name="action">sensorsapplet.preferences</attribute>
++      </item>
++      <item>
++        <attribute name="label" translatable="yes">_Help</attribute>
++        <attribute name="action">sensorsapplet.help</attribute>
++      </item>
++      <item>
++        <attribute name="label" translatable="yes">_About</attribute>
++        <attribute name="action">sensorsapplet.about</attribute>
++      </item>
++    </section>
++  </menu>
++</interface>
+diff --git a/configure.ac b/configure.ac
+index 332faf1..d89a029 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -5,7 +5,7 @@
+ AC_INIT([GNOME Sensors Applet], [3.0.0], [murray.alex at gmail.com],
+ [sensors-applet])
+ 
+-AC_CONFIG_SRCDIR([sensors-applet/main.c])
++AC_CONFIG_SRCDIR([sensors-applet/sensors-module.c])
+ AM_CONFIG_HEADER([sensors-applet/config.h])
+ AC_CONFIG_MACRO_DIRS([m4])
+ AM_INIT_AUTOMAKE([ -Wno-portability])
+@@ -52,7 +52,7 @@ AC_CHECK_HEADERS(
+ 
+ GLIB_REQUIRED=2.22.0
+ GTK_REQUIRED=3.4.0
+-LIBPANEL_REQUIRED=3.0.0
++LIBGNOME_PANEL_REQUIRED=3.36.0
+ LIBNOTIFY_REQUIRED=0.3.0
+ LIBCAIRO_REQUIRED=1.0.4
+ LIBDBUSGLIB_REQUIRED=0.80
+@@ -66,12 +66,12 @@ PKG_CHECK_MODULES(GTK, gtk+-3.0 >= $GTK_REQUIRED)
+ AC_SUBST(GTK_CFLAGS)
+ AC_SUBST(GTK_LIBS)
+ 
+-PKG_CHECK_MODULES(GNOME, libpanel-applet >= $LIBPANEL_REQUIRED)
++PKG_CHECK_MODULES(GNOME, libgnome-panel >= $LIBGNOME_PANEL_REQUIRED)
+ AC_SUBST(GNOME_CFLAGS)
+ AC_SUBST(GNOME_LIBS)
+ 
+-LIBPANEL_APPLET_DIR=`$PKG_CONFIG --variable=libpanel_applet_dir libpanel-applet`
+-AC_SUBST(LIBPANEL_APPLET_DIR)
++LIBGNOME_PANEL_MODULES_DIR=`$PKG_CONFIG --variable=modulesdir libgnome-panel`
++AC_SUBST([LIBGNOME_PANEL_MODULES_DIR], [$LIBGNOME_PANEL_MODULES_DIR])
+ 
+ PKG_CHECK_MODULES(CAIRO, cairo >= $LIBCAIRO_REQUIRED)
+ AC_SUBST(CAIRO_CFLAGS)
+diff --git a/org.gnome.applets.SensorsApplet.panel-applet.in.in b/org.gnome.applets.SensorsApplet.panel-applet.in.in
+deleted file mode 100644
+index 0c101ae..0000000
+--- a/org.gnome.applets.SensorsApplet.panel-applet.in.in
++++ /dev/null
+@@ -1,17 +0,0 @@
+-[Applet Factory]
+-Id=SensorsAppletFactory
+-Location=@APPLET_LOCATION@
+-InProcess=true
+-_Name=Sensors Applet Factory
+-_Description=Sensors Applet Factory
+-
+-[SensorsApplet]
+-_Name=Hardware Sensors Monitor
+-_Description=Displays temperature, fan speed and voltage sensor readings
+-Icon=sensors-applet
+-BonoboId=OAFIID:GNOME_SensorsApplet
+-X-GNOME-Bugzilla-Bugzilla=GNOME
+-X-GNOME-Bugzilla-Product=gnome-applets
+-X-GNOME-Bugzilla-Component=geyes
+-X-GNOME-Bugzilla-Version=@VERSION@
+-X-GNOME-Bugzilla-OtherBinaries=sensors-appet
+diff --git a/po/POTFILES.in b/po/POTFILES.in
+index a0843b0..84a930e 100644
+--- a/po/POTFILES.in
++++ b/po/POTFILES.in
+@@ -17,4 +17,5 @@ sensors-applet/about-dialog.c
+ sensors-applet/sensor-config-dialog.c
+ sensors-applet/sensors-applet.c
+ sensors-applet/sensors-applet-conf.c
++sensors-applet/sensors-module.c
+ [type: gettext/glade]SensorsApplet.xml
+diff --git a/po/POTFILES.skip b/po/POTFILES.skip
+index f23af73..e69de29 100644
+--- a/po/POTFILES.skip
++++ b/po/POTFILES.skip
+@@ -1 +0,0 @@
+-SensorsApplet.server.in
+diff --git a/sensors-applet/Makefile.am b/sensors-applet/Makefile.am
+index c5712ee..ca52205 100644
+--- a/sensors-applet/Makefile.am
++++ b/sensors-applet/Makefile.am
+@@ -1,6 +1,6 @@
+ ## Process this file with automake to produce Makefile.in
+ 
+-sensors_applet_libdir=${pkglibdir}/${LIBPANEL_APPLET_API_VERSION}
++sensors_applet_libdir=$(LIBGNOME_PANEL_MODULES_DIR)
+ sensors_applet_lib_LTLIBRARIES=libsensors-applet.la
+ 
+ libsensors_applet_la_CPPFLAGS = \
+@@ -29,7 +29,7 @@ else
+ libnotify_SRC =
+ endif
+ 
+-libsensors_applet_la_SOURCES = main.c \
++libsensors_applet_la_SOURCES = \
+ 		about-dialog.c \
+ 		about-dialog.h \
+ 		active-sensor.c \
+@@ -45,6 +45,7 @@ libsensors_applet_la_SOURCES = main.c \
+ 		sensors-applet-plugins.h \
+ 		sensors-applet-conf.c \
+ 		sensors-applet-conf.h \
++		sensors-module.c \
+ 		$(libnotify_SRC)
+ 
+ libsensors_applet_la_LIBADD = \
+@@ -54,6 +55,9 @@ libsensors_applet_la_LIBADD = \
+ 	$(CAIRO_LIBS) \
+ 	$(LIBNOTIFY_LIBS) -ldl
+ 
++libsensors_applet_la_LDFLAGS = \
++	-module -avoid-version
++
+ # install headers for plugins to use
+ INST_H_FILES = sensors-applet-plugin.h sensors-applet-sensor.h
+ 
+diff --git a/sensors-applet/active-sensor.c b/sensors-applet/active-sensor.c
+index 8afb224..725e050 100644
+--- a/sensors-applet/active-sensor.c
++++ b/sensors-applet/active-sensor.c
+@@ -429,7 +429,7 @@ void active_sensor_update_graph_dimensions(ActiveSensor *as,
+ ActiveSensor *active_sensor_new(SensorsApplet *sensors_applet,
+                                 GtkTreeRowReference *sensor_row) {
+         ActiveSensor *active_sensor;
+-        PanelAppletOrient orient;
++        GtkOrientation orient;
+         gint graph_size;
+         gboolean horizontal;
+ 
+@@ -440,7 +440,7 @@ ActiveSensor *active_sensor_new(SensorsApplet *sensors_applet,
+ 
+ 	active_sensor = g_new0(ActiveSensor, 1);
+         active_sensor->sensors_applet = sensors_applet;
+-	active_sensor->sensors_applet->settings = panel_applet_settings_new (sensors_applet->applet, SENSORS_APPLET_SCHEMA);
++	active_sensor->sensors_applet->settings = gp_applet_settings_new (GP_APPLET(sensors_applet), SENSORS_APPLET_SCHEMA);
+ 
+ 	active_sensor->sensor_row = sensor_row;
+ 
+@@ -463,12 +463,11 @@ ActiveSensor *active_sensor_new(SensorsApplet *sensors_applet,
+                               GDK_ALL_EVENTS_MASK);
+ 
+         /* need to set size according to orientation */
+-        orient = panel_applet_get_orient(active_sensor->sensors_applet->applet);
++        orient = gp_applet_get_orientation(GP_APPLET(active_sensor->sensors_applet));
+         graph_size = g_settings_get_double(active_sensor->sensors_applet->settings,
+                                                 GRAPH_SIZE);
+ 
+-        horizontal = ((orient == PANEL_APPLET_ORIENT_UP) ||
+-                      (orient == PANEL_APPLET_ORIENT_DOWN));
++        horizontal = (orient == GTK_ORIENTATION_HORIZONTAL);
+ 
+         active_sensor_set_graph_dimensions(active_sensor,
+                                            (horizontal ? graph_size : sensors_applet->size),
+diff --git a/sensors-applet/main.c b/sensors-applet/main.c
+deleted file mode 100644
+index b898fd7..0000000
+--- a/sensors-applet/main.c
++++ /dev/null
+@@ -1,45 +0,0 @@
+-/*
+- * Copyright (C) 2005-2009 Alex Murray <murray.alex at gmail.com>
+- *
+- * 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.,
+- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+- */
+-
+-#ifdef HAVE_CONFIG_H
+-#include "config.h"
+-#endif /* HAVE_CONFIG_H */
+-
+-#include <panel-applet.h>
+-#include <string.h>
+-#include "sensors-applet.h"
+-
+-static gboolean sensors_applet_fill(PanelApplet *applet,
+-                                    const gchar *iid,
+-                                    gpointer data) {
+-	SensorsApplet *sensors_applet;
+-	gboolean retval = FALSE;
+-
+-	if (strcmp(iid, "SensorsApplet") == 0) {
+-		sensors_applet = g_new0(SensorsApplet, 1);
+-		sensors_applet->applet = applet;
+-		sensors_applet_init(sensors_applet);
+-		retval = TRUE;
+-	}
+-	return retval;
+-}
+-
+-PANEL_APPLET_IN_PROCESS_FACTORY ("SensorsAppletFactory",
+-                                PANEL_TYPE_APPLET,
+-                                sensors_applet_fill,
+-                                NULL);
+diff --git a/sensors-applet/sensors-applet.c b/sensors-applet/sensors-applet.c
+index e96a4ef..d197a9c 100644
+--- a/sensors-applet/sensors-applet.c
++++ b/sensors-applet/sensors-applet.c
+@@ -51,6 +51,8 @@
+ #define COLUMN_SPACING 2
+ #define ROW_SPACING 1
+ 
++G_DEFINE_TYPE (SensorsApplet, sensors_applet, GP_TYPE_APPLET)
++
+ /* callbacks for panel menu */
+ static void prefs_cb(GSimpleAction *action,
+ 			GVariant *parameter,
+@@ -90,56 +92,23 @@ static void help_cb(GSimpleAction *action,
+ 	}
+ }
+ 
+-static void destroy_cb(GtkWidget *widget, gpointer data) {
+-        SensorsApplet *sensors_applet;
+-        sensors_applet = (SensorsApplet *)data;
+-
+-	/* destory dialogs, remove timeout and clear sensors tree and finally
+-         * the applet */
+-	if (sensors_applet->prefs_dialog != NULL) {
+-                // destroy's dialog too
+-                prefs_dialog_close(sensors_applet);
+-	}
+-
+-	if (sensors_applet->timeout_id) {
+-		g_source_remove(sensors_applet->timeout_id);
+-	}
+-
+-        // destroy all active sensors
+-        g_list_foreach(sensors_applet->active_sensors,
+-                       (GFunc)active_sensor_destroy,
+-                       NULL);
+-
+-	if (sensors_applet->sensors != NULL) {
+-		gtk_tree_store_clear(sensors_applet->sensors);
+-	}
+-
+-	gtk_widget_destroy(GTK_WIDGET(sensors_applet->applet));
+-
+-	g_free(sensors_applet);
+-	return;
+-}
+-
+-static void change_orient_cb (PanelApplet *applet, 
+-                              PanelAppletOrient orient, 
+-                              gpointer data) {
+-        SensorsApplet *sensors_applet;
+-        sensors_applet = (SensorsApplet *)data;
+-
++static void placement_changed_cb (GpApplet *applet,
++                                  GtkOrientation orientation,
++                                  GtkPositionType position,
++                                  SensorsApplet *sensors_applet) {
+         sensors_applet_display_layout_changed(sensors_applet);
+ }
+ 
+-static void size_allocate_cb(PanelApplet *applet, 
++static void size_allocate_cb(GtkWidget *widget,
+                              GtkAllocation *allocation, 
+                              gpointer data) {
+         SensorsApplet *sensors_applet;
+-        PanelAppletOrient orient;
++        GtkOrientation orient;
+ 
+         sensors_applet = (SensorsApplet *)data;
+-        orient = panel_applet_get_orient(sensors_applet->applet);
++        orient = gp_applet_get_orientation(GP_APPLET(sensors_applet));
+         
+-        if ((orient == PANEL_APPLET_ORIENT_LEFT) || 
+-            (orient == PANEL_APPLET_ORIENT_RIGHT)) {
++        if (orient == GTK_ORIENTATION_VERTICAL) {
+                 if (sensors_applet->size == allocation->width)
+                         return;
+                 sensors_applet->size = allocation->width;
+@@ -214,7 +183,8 @@ static void style_set_cb(GtkWidget *widget,
+ static const GActionEntry sensors_applet_menu_actions[] = {
+ 	{ "preferences", prefs_cb, NULL, NULL, NULL },
+ 	{ "help", help_cb, NULL, NULL, NULL },
+-	{ "about", about_cb, NULL, NULL, NULL }
++	{ "about", about_cb, NULL, NULL, NULL },
++	{ NULL }
+ };
+ 
+ #ifdef HAVE_LIBNOTIFY
+@@ -523,7 +493,7 @@ static void sensors_applet_pack_display(SensorsApplet *sensors_applet) {
+                         gtk_grid_set_column_spacing(GTK_GRID(sensors_applet->table), COLUMN_SPACING);
+                         gtk_grid_set_row_spacing(GTK_GRID(sensors_applet->table), ROW_SPACING);
+                         /* add table to applet */
+-                        gtk_container_add(GTK_CONTAINER(sensors_applet->applet), sensors_applet->table);
++                        gtk_container_add(GTK_CONTAINER(sensors_applet), sensors_applet->table);
+                         
+                 } else {
+                         /* destroy existing widgets - could be an
+@@ -545,7 +515,7 @@ static void sensors_applet_pack_display(SensorsApplet *sensors_applet) {
+ 				"vexpand", TRUE,
+ 				"hexpand", TRUE,
+ 				NULL);
+-                gtk_widget_show_all(GTK_WIDGET(sensors_applet->applet));
++                gtk_widget_show_all(GTK_WIDGET(sensors_applet));
+                 return;
+                 
+ 	} 
+@@ -558,8 +528,7 @@ static void sensors_applet_pack_display(SensorsApplet *sensors_applet) {
+                                                              LAYOUT_MODE);
+ 
+ 
+-        horizontal = (((panel_applet_get_orient(sensors_applet->applet) == PANEL_APPLET_ORIENT_UP) || 
+-                      (panel_applet_get_orient(sensors_applet->applet) == PANEL_APPLET_ORIENT_DOWN)));
++        horizontal = (gp_applet_get_orientation(GP_APPLET (sensors_applet)) == GTK_ORIENTATION_HORIZONTAL);
+ 
+         /* figure out num rows / cols by how high / wide sensors
+          * labels / icons are and how much size we have to put them
+@@ -736,7 +705,7 @@ static void sensors_applet_pack_display(SensorsApplet *sensors_applet) {
+ 		sensors_applet->table = gtk_grid_new();
+ 		gtk_grid_set_column_spacing(GTK_GRID(sensors_applet->table), COLUMN_SPACING);
+ 		gtk_grid_set_row_spacing(GTK_GRID(sensors_applet->table), ROW_SPACING);
+-		gtk_container_add(GTK_CONTAINER(sensors_applet->applet), sensors_applet->table);
++		gtk_container_add(GTK_CONTAINER(sensors_applet), sensors_applet->table);
+ 	} else {
+ 		/* remove all children if table already exists so we can start
+ 		 * again */
+@@ -914,7 +883,7 @@ static void sensors_applet_pack_display(SensorsApplet *sensors_applet) {
+ 				      old_table_children);
+ 		g_list_free(old_table_children);
+ 	}
+-	gtk_widget_show_all(GTK_WIDGET(sensors_applet->applet));
++	gtk_widget_show_all(GTK_WIDGET(sensors_applet));
+ 
+ }
+ 
+@@ -1294,10 +1263,8 @@ void sensors_applet_graph_size_changed(SensorsApplet *sensors_applet) {
+                 
+                 graph_size = g_settings_get_int(sensors_applet->settings,
+                                                         GRAPH_SIZE);
+-                if (panel_applet_get_orient(sensors_applet->applet) ==
+-                    PANEL_APPLET_ORIENT_UP ||
+-                    panel_applet_get_orient(sensors_applet->applet) ==
+-                    PANEL_APPLET_ORIENT_DOWN) {
++                if (gp_applet_get_orientation(GP_APPLET (sensors_applet)) ==
++                    GTK_ORIENTATION_HORIZONTAL) {
+                         /* is horizontal so set graph_size as width */
+                         dimensions[0] = graph_size;
+                         dimensions[1] = sensors_applet->size;
+@@ -1359,15 +1326,14 @@ gdouble sensors_applet_convert_temperature(gdouble value,
+         return value;
+ }
+ 
+-void sensors_applet_init(SensorsApplet *sensors_applet) {
+-
+-	GSimpleActionGroup *action_group;
++static void
++sensors_applet_setup (SensorsApplet *sensors_applet)
++{
+ 	gchar *ui_path;
+ 
+ 	g_assert(sensors_applet);
+-	g_assert(sensors_applet->applet);
+ 
+-	sensors_applet->settings = panel_applet_settings_new (sensors_applet->applet, SENSORS_APPLET_SCHEMA);
++	sensors_applet->settings = gp_applet_settings_new (GP_APPLET (sensors_applet), SENSORS_APPLET_SCHEMA);
+ 
+ 	/* plugin functions are stored as name -> get_value_function pairs so
+          * use standard string functions on hash table */
+@@ -1379,12 +1345,7 @@ void sensors_applet_init(SensorsApplet *sensors_applet) {
+ 	/* initialise size */
+ 	sensors_applet->size = DEFAULT_APPLET_SIZE;
+ 
+-	panel_applet_set_flags(sensors_applet->applet,
+-		PANEL_APPLET_EXPAND_MINOR);
+-
+-	g_signal_connect(sensors_applet->applet, "destroy",
+-		G_CALLBACK(destroy_cb), sensors_applet);
+-
++	gp_applet_set_flags (GP_APPLET (sensors_applet), GP_APPLET_FLAGS_EXPAND_MINOR);
+ 
+ 	/* if not setup, write defaults to configuration backend */
+ 	sensors_applet_conf_setup(sensors_applet);
+@@ -1397,38 +1358,23 @@ void sensors_applet_init(SensorsApplet *sensors_applet) {
+ 	if (NULL == sensors_applet->sensors) {
+ 		GtkWidget *label;
+ 		label = gtk_label_new(_("No sensors found!"));
+-		gtk_container_add(GTK_CONTAINER(sensors_applet->applet), label);
+-		gtk_widget_show_all(GTK_WIDGET(sensors_applet->applet));
++		gtk_container_add(GTK_CONTAINER(sensors_applet), label);
++		gtk_widget_show_all(GTK_WIDGET(sensors_applet));
+ 		return;
+ 	}
+ 
+ 	/* only do menu and signal connections if sensors are found */
+-	action_group = g_simple_action_group_new ();
+-	g_action_map_add_action_entries (G_ACTION_MAP (action_group),
+-		sensors_applet_menu_actions,
+-		G_N_ELEMENTS (sensors_applet_menu_actions),
+-		sensors_applet);
+ 	ui_path = g_build_filename (UIDIR, SENSORS_APPLET_MENU_FILE, NULL);
+-	panel_applet_setup_menu_from_file (sensors_applet->applet, ui_path, action_group,
+-		GETTEXT_PACKAGE);
++	gp_applet_setup_menu_from_file (GP_APPLET (sensors_applet), ui_path, sensors_applet_menu_actions);
+ 	g_free (ui_path);
+ 
+-	gtk_widget_insert_action_group (GTK_WIDGET (sensors_applet->applet), "sensorsapplet",
+-		G_ACTION_GROUP (action_group));
+-
+-//       action = g_action_map_lookup_action (G_ACTION_MAP (action_group), "dialog");
+-  //     g_object_bind_property (applet, "locked-down", action, "enabled",
+-//			+                            G_BINDING_DEFAULT|G_BINDING_INVERT_BOOLEAN|G_BINDING_SYNC_CREATE);
+-
+-	g_object_unref (action_group);
+-
+-	g_signal_connect(sensors_applet->applet, "style-set",
++	g_signal_connect(sensors_applet, "style-set",
+ 		G_CALLBACK(style_set_cb), sensors_applet);
+ 
+-	g_signal_connect(G_OBJECT(sensors_applet->applet), "change_orient",
+-		G_CALLBACK(change_orient_cb), sensors_applet);
++	g_signal_connect(G_OBJECT(sensors_applet), "placement-changed",
++		G_CALLBACK(placement_changed_cb), sensors_applet);
+ 
+-	g_signal_connect(G_OBJECT(sensors_applet->applet), "size_allocate",
++	g_signal_connect(G_OBJECT(sensors_applet), "size_allocate",
+ 		G_CALLBACK(size_allocate_cb), sensors_applet);
+ 
+ 	sensors_applet_update_active_sensors(sensors_applet);
+@@ -1438,6 +1384,52 @@ void sensors_applet_init(SensorsApplet *sensors_applet) {
+ 					g_settings_get_int(sensors_applet->settings, TIMEOUT) / 1000,
+ 					(GSourceFunc)sensors_applet_update_active_sensors,
+ 					sensors_applet);
+-	gtk_widget_show_all(GTK_WIDGET(sensors_applet->applet));
++	gtk_widget_show_all(GTK_WIDGET(sensors_applet));
++}
++
++static void
++sensors_applet_constructed (GObject *object)
++{
++  G_OBJECT_CLASS (sensors_applet_parent_class)->constructed (object);
++  sensors_applet_setup (SENSORS_APPLET (object));
+ }
+ 
++static void
++sensors_applet_finalize (GObject *object)
++{
++  SensorsApplet *self;
++
++  self = SENSORS_APPLET (object);
++
++  /* destory dialogs, remove timeout and clear sensors tree */
++
++  if (self->prefs_dialog != NULL)
++    prefs_dialog_close (self);
++
++  if (self->timeout_id)
++    g_source_remove (self->timeout_id);
++
++  // destroy all active sensors
++  g_list_foreach (self->active_sensors, (GFunc) active_sensor_destroy, NULL);
++
++  if (self->sensors != NULL)
++    gtk_tree_store_clear (self->sensors);
++
++  G_OBJECT_CLASS (sensors_applet_parent_class)->finalize (object);
++}
++
++static void
++sensors_applet_class_init (SensorsAppletClass *self_class)
++{
++  GObjectClass *object_class;
++
++  object_class = G_OBJECT_CLASS (self_class);
++
++  object_class->constructed = sensors_applet_constructed;
++  object_class->finalize = sensors_applet_finalize;
++}
++
++static void
++sensors_applet_init (SensorsApplet *self)
++{
++}
+diff --git a/sensors-applet/sensors-applet.h b/sensors-applet/sensors-applet.h
+index e740a42..2c218f4 100644
+--- a/sensors-applet/sensors-applet.h
++++ b/sensors-applet/sensors-applet.h
+@@ -20,7 +20,7 @@
+ #define SENSORS_APPLET_H
+ 
+ #include <gtk/gtk.h>
+-#include <panel-applet.h>
++#include <libgnome-panel/gp-applet.h>
+ #include "sensors-applet-sensor.h"
+ 
+ #ifdef HAVE_CONFIG_H
+@@ -118,9 +118,11 @@ typedef enum {
+ /* only always two type of alarms - may have more notif types */
+ #define NUM_ALARMS 2
+ 
++#define SENSORS_TYPE_APPLET (sensors_applet_get_type ())
++G_DECLARE_FINAL_TYPE (SensorsApplet, sensors_applet, SENSORS, APPLET, GpApplet)
++
+ struct _SensorsApplet {
+-	/* the actual applet for this instance */
+-	PanelApplet* applet;
++	GpApplet parent;
+         gint size;
+ 
+ 	GtkTreeStore *sensors;
+@@ -143,10 +145,7 @@ struct _SensorsApplet {
+ #endif // HAVE_LIBNOTIFY
+ };
+ 
+-
+-
+ /* non-static function prototypes */
+-void sensors_applet_init(SensorsApplet *sensors_applet);
+ void sensors_applet_sensor_enabled(SensorsApplet *sensors_applet,
+                                    GtkTreePath *path);
+ void sensors_applet_sensor_disabled(SensorsApplet *sensors_applet,
+diff --git a/sensors-applet/sensors-module.c b/sensors-applet/sensors-module.c
+new file mode 100644
+index 0000000..ab6283d
+--- /dev/null
++++ b/sensors-applet/sensors-module.c
+@@ -0,0 +1,62 @@
++/*
++ * Copyright (C) 2005-2009 Alex Murray <murray.alex at gmail.com>
++ *
++ * 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.,
++ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
++ */
++
++#include "config.h"
++
++#include "config.h"
++
++#include <glib/gi18n-lib.h>
++#include <libgnome-panel/gp-module.h>
++
++#include "sensors-applet.h"
++
++static GpAppletInfo *
++get_applet_info (const gchar *id)
++{
++  return gp_applet_info_new (sensors_applet_get_type,
++                             _("Hardware Sensors Monitor"),
++                             _("Displays temperature, fan speed and voltage sensor readings"),
++                             "sensors-applet");
++}
++
++static const gchar *
++get_applet_id_from_iid (const gchar *iid)
++{
++  if (g_strcmp0 (iid, "SensorsAppletFactory::SensorsApplet") == 0)
++    return "sensorsapplet";
++
++  return NULL;
++}
++
++void
++gp_module_load (GpModule *module)
++{
++  bindtextdomain (GETTEXT_PACKAGE, GNOMELOCALEDIR);
++  bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
++  gp_module_set_gettext_domain (module, GETTEXT_PACKAGE);
++
++  gp_module_set_abi_version (module, GP_MODULE_ABI_VERSION);
++
++  gp_module_set_id (module, "net.sourceforge.sensors-applet");
++  gp_module_set_version (module, PACKAGE_VERSION);
++
++  gp_module_set_applet_ids (module, "sensorsapplet", NULL);
++
++  gp_module_set_get_applet_info (module, get_applet_info);
++  gp_module_set_compatibility (module, get_applet_id_from_iid);
++}



More information about the arch-commits mailing list