diff options
Diffstat (limited to 'libempathy')
-rw-r--r-- | libempathy/empathy-irc-network.c | 21 | ||||
-rw-r--r-- | libempathy/empathy-irc-network.h | 3 |
2 files changed, 24 insertions, 0 deletions
diff --git a/libempathy/empathy-irc-network.c b/libempathy/empathy-irc-network.c index 1340ece01..fa422e9fc 100644 --- a/libempathy/empathy-irc-network.c +++ b/libempathy/empathy-irc-network.c @@ -237,3 +237,24 @@ empathy_irc_network_add_server (EmpathyIrcNetwork *self, priv->servers = g_slist_append (priv->servers, g_object_ref (server)); g_signal_emit (self, signals[MODIFIED], 0); } + +void +empathy_irc_network_remove_server (EmpathyIrcNetwork *self, + EmpathyIrcServer *server) +{ + EmpathyIrcNetworkPrivate *priv; + GSList *l; + + g_return_if_fail (EMPATHY_IS_IRC_NETWORK (self)); + g_return_if_fail (server != NULL && EMPATHY_IS_IRC_SERVER (server)); + + priv = EMPATHY_IRC_NETWORK_GET_PRIVATE (self); + + l = g_slist_find (priv->servers, server); + if (l == NULL) + return; + + g_object_unref (l->data); + priv->servers = g_slist_delete_link (priv->servers, l); + g_signal_emit (self, signals[MODIFIED], 0); +} diff --git a/libempathy/empathy-irc-network.h b/libempathy/empathy-irc-network.h index c1412af1e..51b3dbab2 100644 --- a/libempathy/empathy-irc-network.h +++ b/libempathy/empathy-irc-network.h @@ -70,6 +70,9 @@ empathy_irc_network_get_servers (EmpathyIrcNetwork *network); void empathy_irc_network_add_server (EmpathyIrcNetwork *network, EmpathyIrcServer *server); +void empathy_irc_network_remove_server (EmpathyIrcNetwork *network, + EmpathyIrcServer *server); + G_END_DECLS #endif /* __EMPATHY_IRC_NETWORK_H__ */ |