Commit f1de7218 authored by Xavier Claessens's avatar Xavier Claessens

Move empathy_notification_is_enabled () to src/

svn path=/trunk/; revision=2294
parent c23031cd
......@@ -1584,23 +1584,6 @@ static EmpathySoundEntry sound_entries[LAST_EMPATHY_SOUND] = {
N_("Voice call ended"), NULL },
};
static gboolean
check_available (void)
{
McPresence presence;
EmpathyIdle *idle;
idle = empathy_idle_dup_singleton ();
presence = empathy_idle_get_state (idle);
g_object_unref (idle);
if (presence != MC_PRESENCE_AVAILABLE &&
presence != MC_PRESENCE_UNSET) {
return FALSE;
}
return TRUE;
}
static gboolean
empathy_sound_pref_is_enabled (const char *key)
......@@ -1617,7 +1600,7 @@ empathy_sound_pref_is_enabled (const char *key)
return FALSE;
}
if (!check_available ()) {
if (!empathy_check_available_state ()) {
empathy_conf_get_bool (conf, EMPATHY_PREFS_SOUNDS_DISABLED_AWAY,
&res);
if (res) {
......@@ -1658,36 +1641,3 @@ empathy_sound_play (GtkWidget *widget,
}
}
gboolean
empathy_notification_should_show (gboolean check_focus)
{
EmpathyConf *conf;
gboolean res;
conf = empathy_conf_get ();
res = FALSE;
empathy_conf_get_bool (conf, EMPATHY_PREFS_NOTIFICATIONS_ENABLED, &res);
if (!res) {
return FALSE;
}
if (!check_available ()) {
empathy_conf_get_bool (conf,
EMPATHY_PREFS_NOTIFICATIONS_DISABLED_AWAY,
&res);
if (res) {
return FALSE;
}
}
if (check_focus) {
empathy_conf_get_bool (conf,
EMPATHY_PREFS_NOTIFICATIONS_FOCUS, &res);
return res;
} else {
return TRUE;
}
}
......@@ -133,9 +133,6 @@ void empathy_send_file_with_file_chooser (EmpathyContact *conta
void empathy_sound_play (GtkWidget *widget,
EmpathySound sound_id);
/* Notifications */
gboolean empathy_notification_should_show (gboolean check_focus);
G_END_DECLS
#endif /* __EMPATHY_UI_UTILS_H__ */
......@@ -41,6 +41,7 @@
#include "empathy-contact-manager.h"
#include "empathy-dispatcher.h"
#include "empathy-dispatch-operation.h"
#include "empathy-idle.h"
#include "empathy-tp-call.h"
#include <extensions/extensions.h>
......@@ -482,3 +483,22 @@ empathy_start_call_with_contact (EmpathyContact *contact)
empathy_dispatcher_call_with_contact (contact, empathy_call_request_cb,
contact);
}
gboolean
empathy_check_available_state (void)
{
McPresence presence;
EmpathyIdle *idle;
idle = empathy_idle_dup_singleton ();
presence = empathy_idle_get_state (idle);
g_object_unref (idle);
if (presence != MC_PRESENCE_AVAILABLE &&
presence != MC_PRESENCE_UNSET) {
return FALSE;
}
return TRUE;
}
......@@ -87,7 +87,7 @@ McAccount * empathy_channel_get_account (TpChannel *channel);
gboolean empathy_proxy_equal (gconstpointer a,
gconstpointer b);
guint empathy_proxy_hash (gconstpointer key);
gboolean empathy_check_available_state (void);
/* Temporary utility function, should be replaces by better voip infrastructure
* soon */
void empathy_start_call_with_contact (EmpathyContact *contact);
......
......@@ -32,6 +32,7 @@ empathy_SOURCES = \
empathy-import-dialog.c empathy-import-dialog.h \
empathy-import-pidgin.c empathy-import-pidgin.h \
empathy-main-window.c empathy-main-window.h \
empathy-misc.c empathy-misc.h \
empathy-new-chatroom-dialog.c empathy-new-chatroom-dialog.h \
empathy-preferences.c empathy-preferences.h \
empathy-status-icon.c empathy-status-icon.h \
......
......@@ -55,6 +55,7 @@
#include "empathy-chat-window.h"
#include "empathy-about-dialog.h"
#include "empathy-misc.h"
#define DEBUG_FLAG EMPATHY_DEBUG_CHAT
#include <libempathy/empathy-debug.h>
......@@ -868,9 +869,16 @@ chat_window_show_or_update_notification (EmpathyMessage *message,
const char *body;
GdkPixbuf *pixbuf;
EmpathyChatWindowPriv *priv = GET_PRIV (window);
gboolean res;
if (!empathy_notification_should_show (TRUE)) {
if (!empathy_notification_is_enabled ()) {
return;
} else {
empathy_conf_get_bool (empathy_conf_get (),
EMPATHY_PREFS_NOTIFICATIONS_FOCUS, &res);
if (!res) {
return;
}
}
sender = empathy_message_get_sender (message);
......
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
/*
* Copyright (C) 2009 Collabora Ltd.
*
* 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.
*
* Author: Cosimo Cecchi <cosimo.cecchi@collabora.co.uk>
*
*/
#include "empathy-misc.h"
#include <libempathy/empathy-utils.h>
#include <libempathy-gtk/empathy-conf.h>
/* public methods */
gboolean
empathy_notification_is_enabled (void)
{
EmpathyConf *conf;
gboolean res;
conf = empathy_conf_get ();
res = FALSE;
empathy_conf_get_bool (conf, EMPATHY_PREFS_NOTIFICATIONS_ENABLED, &res);
if (!res) {
return FALSE;
}
if (!empathy_check_available_state ()) {
empathy_conf_get_bool (conf,
EMPATHY_PREFS_NOTIFICATIONS_DISABLED_AWAY,
&res);
if (res) {
return FALSE;
}
}
return TRUE;
}
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
/*
* Copyright (C) 2009 Collabora Ltd.
*
* 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.
*
* Author: Cosimo Cecchi <cosimo.cecchi@collabora.co.uk>
*
*/
#ifndef __EMPATHY_MISC_H__
#define __EMPATHY_MISC_H__
#include <glib.h>
G_BEGIN_DECLS
gboolean empathy_notification_is_enabled (void);
G_END_DECLS
#endif /* __EMPATHY_MISC_H__ */
......@@ -43,6 +43,7 @@
#include "empathy-status-icon.h"
#include "empathy-preferences.h"
#include "empathy-event-manager.h"
#include "empathy-misc.h"
#define DEBUG_FLAG EMPATHY_DEBUG_DISPATCHER
#include <libempathy/empathy-debug.h>
......@@ -225,7 +226,7 @@ status_icon_event_added_cb (EmpathyEventManager *manager,
status_icon_update_icon (icon);
status_icon_update_tooltip (icon);
if (empathy_notification_should_show (FALSE)) {
if (empathy_notification_is_enabled ()) {
status_icon_update_notification (icon);
}
......@@ -274,7 +275,7 @@ status_icon_event_updated_cb (EmpathyEventManager *manager,
return;
}
if (empathy_notification_should_show (FALSE)) {
if (empathy_notification_is_enabled ()) {
status_icon_update_notification (icon);
}
......@@ -342,7 +343,7 @@ status_icon_idle_notify_cb (EmpathyStatusIcon *icon)
status_icon_update_icon (icon);
status_icon_update_tooltip (icon);
if (!empathy_notification_should_show (FALSE)) {
if (!empathy_notification_is_enabled ()) {
/* dismiss the outstanding notification if present */
if (priv->notification) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment