aboutsummaryrefslogtreecommitdiffstats
path: root/libempathy-gtk
diff options
context:
space:
mode:
authorXavier Claessens <xclaesse@gmail.com>2007-12-06 22:31:58 +0800
committerXavier Claessens <xclaesse@src.gnome.org>2007-12-06 22:31:58 +0800
commite0de4a5f2a254beef02021573c57543dfd33311f (patch)
treee515549717771ce1d566a004aec1df6669264207 /libempathy-gtk
parent17b31a900a57de69d2a222683dea403b2d8a3346 (diff)
downloadgsoc2013-empathy-e0de4a5f2a254beef02021573c57543dfd33311f.tar
gsoc2013-empathy-e0de4a5f2a254beef02021573c57543dfd33311f.tar.gz
gsoc2013-empathy-e0de4a5f2a254beef02021573c57543dfd33311f.tar.bz2
gsoc2013-empathy-e0de4a5f2a254beef02021573c57543dfd33311f.tar.lz
gsoc2013-empathy-e0de4a5f2a254beef02021573c57543dfd33311f.tar.xz
gsoc2013-empathy-e0de4a5f2a254beef02021573c57543dfd33311f.tar.zst
gsoc2013-empathy-e0de4a5f2a254beef02021573c57543dfd33311f.zip
Add a preference option to disable/enable NM support.
2007-12-06 Xavier Claessens <xclaesse@gmail.com> * data/empathy.schemas.in: * libempathy-gtk/empathy-preferences.c: * libempathy-gtk/empathy-preferences.glade: * libempathy-gtk/empathy-preferences.h: * libempathy-gtk/empathy-status-icon.c: * libempathy/empathy-idle.c: * libempathy/empathy-idle.h: Add a preference option to disable/enable NM support. svn path=/trunk/; revision=468
Diffstat (limited to 'libempathy-gtk')
-rw-r--r--libempathy-gtk/empathy-preferences.c6
-rw-r--r--libempathy-gtk/empathy-preferences.glade50
-rw-r--r--libempathy-gtk/empathy-preferences.h1
-rw-r--r--libempathy-gtk/empathy-status-icon.c30
4 files changed, 75 insertions, 12 deletions
diff --git a/libempathy-gtk/empathy-preferences.c b/libempathy-gtk/empathy-preferences.c
index a8b52954d..14ee8f763 100644
--- a/libempathy-gtk/empathy-preferences.c
+++ b/libempathy-gtk/empathy-preferences.c
@@ -50,6 +50,7 @@ typedef struct {
GtkWidget *combobox_chat_theme;
GtkWidget *checkbutton_theme_chat_room;
GtkWidget *checkbutton_separate_chat_windows;
+ GtkWidget *checkbutton_use_nm;
GtkWidget *radiobutton_contact_list_sort_by_name;
GtkWidget *radiobutton_contact_list_sort_by_state;
@@ -178,6 +179,10 @@ preferences_setup_widgets (EmpathyPreferences *preferences)
preferences->checkbutton_separate_chat_windows);
preferences_hookup_toggle_button (preferences,
+ EMPATHY_PREFS_USE_NM,
+ preferences->checkbutton_use_nm);
+
+ preferences_hookup_toggle_button (preferences,
EMPATHY_PREFS_UI_SHOW_AVATARS,
preferences->checkbutton_show_avatars);
@@ -939,6 +944,7 @@ empathy_preferences_show (GtkWindow *parent)
"combobox_chat_theme", &preferences->combobox_chat_theme,
"checkbutton_theme_chat_room", &preferences->checkbutton_theme_chat_room,
"checkbutton_separate_chat_windows", &preferences->checkbutton_separate_chat_windows,
+ "checkbutton_use_nm", &preferences->checkbutton_use_nm,
"radiobutton_contact_list_sort_by_name", &preferences->radiobutton_contact_list_sort_by_name,
"radiobutton_contact_list_sort_by_state", &preferences->radiobutton_contact_list_sort_by_state,
"checkbutton_sounds_for_messages", &preferences->checkbutton_sounds_for_messages,
diff --git a/libempathy-gtk/empathy-preferences.glade b/libempathy-gtk/empathy-preferences.glade
index 73cb66d5f..5c3321197 100644
--- a/libempathy-gtk/empathy-preferences.glade
+++ b/libempathy-gtk/empathy-preferences.glade
@@ -209,16 +209,48 @@
<property name="right_padding">0</property>
<child>
- <widget class="GtkCheckButton" id="checkbutton_separate_chat_windows">
+ <widget class="GtkVBox" id="vbox218">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">_Open new chats in separate windows</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <widget class="GtkCheckButton" id="checkbutton_separate_chat_windows">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Open new chats in separate windows</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkCheckButton" id="checkbutton_use_nm">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Use network manager</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
</widget>
</child>
</widget>
diff --git a/libempathy-gtk/empathy-preferences.h b/libempathy-gtk/empathy-preferences.h
index 39c2994c1..e4cf122bc 100644
--- a/libempathy-gtk/empathy-preferences.h
+++ b/libempathy-gtk/empathy-preferences.h
@@ -50,6 +50,7 @@ G_BEGIN_DECLS
#define EMPATHY_PREFS_CONTACTS_SORT_CRITERIUM EMPATHY_PREFS_PATH "/contacts/sort_criterium"
#define EMPATHY_PREFS_HINTS_CLOSE_MAIN_WINDOW EMPATHY_PREFS_PATH "/hints/close_main_window"
#define EMPATHY_PREFS_SALUT_ACCOUNT_CREATED EMPATHY_PREFS_PATH "/accounts/salut_created"
+#define EMPATHY_PREFS_USE_NM EMPATHY_PREFS_PATH "/use_nm"
GtkWidget * empathy_preferences_show (GtkWindow *parent);
diff --git a/libempathy-gtk/empathy-status-icon.c b/libempathy-gtk/empathy-status-icon.c
index 4421ddc85..cca41d5dd 100644
--- a/libempathy-gtk/empathy-status-icon.c
+++ b/libempathy-gtk/empathy-status-icon.c
@@ -140,6 +140,19 @@ static void status_icon_event_free (StatusIconEvent *event
G_DEFINE_TYPE (EmpathyStatusIcon, empathy_status_icon, G_TYPE_OBJECT);
static void
+status_icon_notify_use_nm_cb (EmpathyConf *conf,
+ const gchar *key,
+ gpointer user_data)
+{
+ EmpathyStatusIconPriv *priv = GET_PRIV (user_data);
+ gboolean use_nm;
+
+ if (empathy_conf_get_bool (conf, key, &use_nm)) {
+ empathy_idle_set_use_nm (priv->idle, use_nm);
+ }
+}
+
+static void
empathy_status_icon_class_init (EmpathyStatusIconClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
@@ -154,13 +167,11 @@ empathy_status_icon_init (EmpathyStatusIcon *icon)
{
EmpathyStatusIconPriv *priv;
GList *pendings, *l;
+ gboolean use_nm;
priv = GET_PRIV (icon);
priv->icon = gtk_status_icon_new ();
- priv->idle = empathy_idle_new ();
- empathy_idle_set_auto_away (priv->idle, TRUE);
- empathy_idle_set_auto_disconnect (priv->idle, TRUE);
priv->manager = empathy_contact_manager_new ();
priv->mc = empathy_mission_control_new ();
priv->text_filter = empathy_filter_new ("org.gnome.Empathy.ChatFilter",
@@ -169,6 +180,19 @@ empathy_status_icon_init (EmpathyStatusIcon *icon)
MC_FILTER_PRIORITY_DIALOG,
MC_FILTER_FLAG_INCOMING);
+ /* Setup EmpathyIdle */
+ priv->idle = empathy_idle_new ();
+ empathy_conf_get_bool (empathy_conf_get (),
+ EMPATHY_PREFS_USE_NM,
+ &use_nm);
+ empathy_conf_notify_add (empathy_conf_get (),
+ EMPATHY_PREFS_USE_NM,
+ status_icon_notify_use_nm_cb,
+ icon);
+ empathy_idle_set_auto_away (priv->idle, TRUE);
+ empathy_idle_set_use_nm (priv->idle, use_nm);
+
+
status_icon_create_menu (icon);
status_icon_idle_notify_cb (icon);