[nautilus-actions] na_desktop_environment_get_label(): new function
- From: Pierre Wieser <pwieser src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [nautilus-actions] na_desktop_environment_get_label(): new function
- Date: Mon, 16 Jan 2012 21:05:03 +0000 (UTC)
commit f94b7204be36752557d5ab26b5b1b15f18c90043
Author: Pierre Wieser <pwieser trychlos org>
Date: Mon Jan 16 05:38:50 2012 +0100
na_desktop_environment_get_label(): new function
ChangeLog | 8 ++++++
src/core/na-desktop-environment.c | 45 +++++++++++++++++++++++++++++++++--
src/core/na-desktop-environment.h | 2 +
src/nact/nact-preferences-editor.c | 8 ++++--
4 files changed, 57 insertions(+), 6 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 7df13f5..109e477 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,6 +3,14 @@
* docs/nact/C/nact-conditions.xml: Embeds literal values between
<literal>..</literal> tags.
+ * src/core/na-desktop-environment.c
+ * src/core/na-desktop-environment.h
+ (na_desktop_environment_detect_running_desktop): Fix LXDE detection.
+ (na_desktop_environment_get_label): New function.
+
+ * src/nact/nact-preferences-editor.c
+ (desktop_setup): Display the desktop label instead of its id.
+
* tools/check-po.sh: Do not match binary files.
* src/io-desktop/nadp-writer.c (nadp_writer_iexporter_export_to_buffer):
diff --git a/src/core/na-desktop-environment.c b/src/core/na-desktop-environment.c
index d851497..44d04c9 100644
--- a/src/core/na-desktop-environment.c
+++ b/src/core/na-desktop-environment.c
@@ -58,7 +58,6 @@ na_desktop_environment_get_known_list( void )
return(( const NADesktopEnv * ) st_desktops );
}
-
/*
* na_desktop_environment_detect_running_desktop:
*
@@ -75,6 +74,16 @@ na_desktop_environment_detect_running_desktop( void )
gint exit_status;
GError *error;
gboolean ok;
+ int i;
+
+ value = g_getenv( "XDG_CURRENT_DESKTOP" );
+ if( value && strlen( value )){
+ for( i = 0 ; st_desktops[i].id ; ++i ){
+ if( !strcmp( st_desktops[i].id, value )){
+ return( st_desktops[i].id );
+ }
+ }
+ }
value = g_getenv( "KDE_FULL_SESSION" );
if( value && !strcmp( value, "true" )){
@@ -124,8 +133,38 @@ na_desktop_environment_detect_running_desktop( void )
g_error_free( error );
}
- /* do not know how to identify ROX or LXDE (Hong Jen Yee <pcman.tw (at) gmail.com>)
- * environments; so other desktops are just identified as 'Old' (legacy systems)
+ /* do not know how to identify ROX
+ * this one and other desktops are just identified as 'Old' (legacy systems)
*/
return( DESKTOP_OLD );
}
+
+/*
+ * na_desktop_environment_get_label:
+ * @id: desktop identifier.
+ *
+ * Returns: the label of the desktop environment.
+ *
+ * Defaults to returning the provided identifier if it is not found in
+ * our internal reference.
+ *
+ * Since: 3.2
+ */
+const gchar *
+na_desktop_environment_get_label( const gchar *id )
+{
+ static const gchar *thisfn = "na_desktop_environment_get_label";
+ int i;
+
+ g_return_val_if_fail( id && strlen( id ), NULL );
+
+ for( i = 0 ; st_desktops[i].id ; ++ i ){
+ if( !strcmp( st_desktops[i].id, id )){
+ return( st_desktops[i].label );
+ }
+ }
+
+ g_warning( "%s: unknwon desktop identifier: %s", thisfn, id );
+
+ return( id );
+}
diff --git a/src/core/na-desktop-environment.h b/src/core/na-desktop-environment.h
index 4404b84..50c0129 100644
--- a/src/core/na-desktop-environment.h
+++ b/src/core/na-desktop-environment.h
@@ -72,6 +72,8 @@ const NADesktopEnv *na_desktop_environment_get_known_list ( void );
const gchar *na_desktop_environment_detect_running_desktop( void );
+const gchar *na_desktop_environment_get_label ( const gchar *id );
+
G_END_DECLS
#endif /* __CORE_API_NA_DESKTOP_ENVIRONMENT_H__ */
diff --git a/src/nact/nact-preferences-editor.c b/src/nact/nact-preferences-editor.c
index 9c5be63..97aa721 100644
--- a/src/nact/nact-preferences-editor.c
+++ b/src/nact/nact-preferences-editor.c
@@ -843,7 +843,8 @@ desktop_setup( NactPreferencesEditor *editor )
guint i;
gint found;
GtkWidget *widget;
- const gchar *desktop;
+ const gchar *desktop_id;
+ const gchar *desktop_label;
found = -1;
editor->private->desktop = na_settings_get_string( NA_IPREFS_DESKTOP_ENVIRONMENT, NULL, &editor->private->desktop_mandatory );
@@ -875,8 +876,9 @@ desktop_setup( NactPreferencesEditor *editor )
/* set the currently detected desktop
*/
widget = base_window_get_widget( BASE_WINDOW( editor ), "DesktopLabel" );
- desktop = na_desktop_environment_detect_running_desktop();
- gtk_label_set_text( GTK_LABEL( widget ), desktop );
+ desktop_id = na_desktop_environment_detect_running_desktop();
+ desktop_label = na_desktop_environment_get_label( desktop_id );
+ gtk_label_set_text( GTK_LABEL( widget ), desktop_label );
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]