|
Packit |
79f644 |
/*
|
|
Packit |
79f644 |
* Copyright (C) 2007-2008 Guillaume Desmottes
|
|
Packit |
79f644 |
* Copyright (C) 2010 Collabora Ltd.
|
|
Packit |
79f644 |
*
|
|
Packit |
79f644 |
* This library is free software; you can redistribute it and/or
|
|
Packit |
79f644 |
* modify it under the terms of the GNU Lesser General Public
|
|
Packit |
79f644 |
* License as published by the Free Software Foundation; either
|
|
Packit |
79f644 |
* version 2.1 of the License, or (at your option) any later version.
|
|
Packit |
79f644 |
*
|
|
Packit |
79f644 |
* This library is distributed in the hope that it will be useful,
|
|
Packit |
79f644 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
Packit |
79f644 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Packit |
79f644 |
* Lesser General Public License for more details.
|
|
Packit |
79f644 |
*
|
|
Packit |
79f644 |
* You should have received a copy of the GNU Lesser General Public
|
|
Packit |
79f644 |
* License along with this library; if not, write to the Free Software
|
|
Packit |
79f644 |
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
Packit |
79f644 |
*
|
|
Packit |
79f644 |
* Authors: Guillaume Desmottes <gdesmott@gnome.org>
|
|
Packit |
79f644 |
*/
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
#include "config.h"
|
|
Packit |
79f644 |
#include "tpaw-irc-network-chooser.h"
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
#include "tpaw-irc-network-chooser-dialog.h"
|
|
Packit |
79f644 |
#include "tpaw-irc-network-manager.h"
|
|
Packit |
79f644 |
#include "tpaw-utils.h"
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
#define DEBUG_FLAG TPAW_DEBUG_ACCOUNT | TPAW_DEBUG_IRC
|
|
Packit |
79f644 |
#include "tpaw-debug.h"
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
#define DEFAULT_IRC_NETWORK "irc.gimp.org"
|
|
Packit |
79f644 |
#define DEFAULT_IRC_PORT 6667
|
|
Packit |
79f644 |
#define DEFAULT_IRC_SSL FALSE
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
enum {
|
|
Packit |
79f644 |
PROP_SETTINGS = 1
|
|
Packit |
79f644 |
};
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
enum {
|
|
Packit |
79f644 |
SIG_CHANGED,
|
|
Packit |
79f644 |
LAST_SIGNAL
|
|
Packit |
79f644 |
};
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
static guint signals[LAST_SIGNAL] = { 0 };
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
struct _TpawIrcNetworkChooserPriv {
|
|
Packit |
79f644 |
TpawAccountSettings *settings;
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
TpawIrcNetworkManager *network_manager;
|
|
Packit |
79f644 |
GtkWidget *dialog;
|
|
Packit |
79f644 |
/* Displayed network */
|
|
Packit |
79f644 |
TpawIrcNetwork *network;
|
|
Packit |
79f644 |
};
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
G_DEFINE_TYPE (TpawIrcNetworkChooser, tpaw_irc_network_chooser,
|
|
Packit |
79f644 |
GTK_TYPE_BUTTON);
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
static void
|
|
Packit |
79f644 |
tpaw_irc_network_chooser_set_property (GObject *object,
|
|
Packit |
79f644 |
guint prop_id,
|
|
Packit |
79f644 |
const GValue *value,
|
|
Packit |
79f644 |
GParamSpec *pspec)
|
|
Packit |
79f644 |
{
|
|
Packit |
79f644 |
TpawIrcNetworkChooser *self = TPAW_IRC_NETWORK_CHOOSER (object);
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
switch (prop_id)
|
|
Packit |
79f644 |
{
|
|
Packit |
79f644 |
case PROP_SETTINGS:
|
|
Packit |
79f644 |
self->priv->settings = g_value_dup_object (value);
|
|
Packit |
79f644 |
break;
|
|
Packit |
79f644 |
default:
|
|
Packit |
79f644 |
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
|
Packit |
79f644 |
break;
|
|
Packit |
79f644 |
}
|
|
Packit |
79f644 |
}
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
static void
|
|
Packit |
79f644 |
tpaw_irc_network_chooser_get_property (GObject *object,
|
|
Packit |
79f644 |
guint prop_id,
|
|
Packit |
79f644 |
GValue *value,
|
|
Packit |
79f644 |
GParamSpec *pspec)
|
|
Packit |
79f644 |
{
|
|
Packit |
79f644 |
TpawIrcNetworkChooser *self = TPAW_IRC_NETWORK_CHOOSER (object);
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
switch (prop_id)
|
|
Packit |
79f644 |
{
|
|
Packit |
79f644 |
case PROP_SETTINGS:
|
|
Packit |
79f644 |
g_value_set_object (value, self->priv->settings);
|
|
Packit |
79f644 |
break;
|
|
Packit |
79f644 |
default:
|
|
Packit |
79f644 |
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
|
Packit |
79f644 |
break;
|
|
Packit |
79f644 |
}
|
|
Packit |
79f644 |
}
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
static void
|
|
Packit |
79f644 |
unset_server_params (TpawIrcNetworkChooser *self)
|
|
Packit |
79f644 |
{
|
|
Packit |
79f644 |
DEBUG ("Unset server, port and use-ssl");
|
|
Packit |
79f644 |
tpaw_account_settings_unset (self->priv->settings, "server");
|
|
Packit |
79f644 |
tpaw_account_settings_unset (self->priv->settings, "port");
|
|
Packit |
79f644 |
tpaw_account_settings_unset (self->priv->settings, "use-ssl");
|
|
Packit |
79f644 |
}
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
static gchar *
|
|
Packit |
79f644 |
dup_network_service (TpawIrcNetwork *network)
|
|
Packit |
79f644 |
{
|
|
Packit |
79f644 |
/* Account.Service has to be a lower case alphanumeric string which may
|
|
Packit |
79f644 |
* also contain '-' but not start with it. */
|
|
Packit |
79f644 |
#define VALID G_CSET_a_2_z G_CSET_DIGITS "-"
|
|
Packit |
79f644 |
gchar *service, *tmp;
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
service = g_strdup (tpaw_irc_network_get_name (network));
|
|
Packit |
79f644 |
service = g_strstrip (service);
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
if (tp_str_empty (service))
|
|
Packit |
79f644 |
{
|
|
Packit |
79f644 |
g_free (service);
|
|
Packit |
79f644 |
return NULL;
|
|
Packit |
79f644 |
}
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
tmp = service;
|
|
Packit |
79f644 |
service = g_ascii_strdown (service, -1);
|
|
Packit |
79f644 |
g_free (tmp);
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
service = g_strcanon (service, VALID, '-');
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
if (service[0] == '-')
|
|
Packit |
79f644 |
{
|
|
Packit |
79f644 |
tmp = service;
|
|
Packit |
79f644 |
service = g_strdup (service + 1);
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
g_free (tmp);
|
|
Packit |
79f644 |
}
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
return service;
|
|
Packit |
79f644 |
}
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
static void
|
|
Packit |
79f644 |
update_server_params (TpawIrcNetworkChooser *self)
|
|
Packit |
79f644 |
{
|
|
Packit |
79f644 |
GSList *servers;
|
|
Packit |
79f644 |
const gchar *charset;
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
g_assert (self->priv->network != NULL);
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
charset = tpaw_irc_network_get_charset (self->priv->network);
|
|
Packit |
79f644 |
DEBUG ("Setting charset to %s", charset);
|
|
Packit |
79f644 |
tpaw_account_settings_set (self->priv->settings, "charset",
|
|
Packit |
79f644 |
g_variant_new_string (charset));
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
servers = tpaw_irc_network_get_servers (self->priv->network);
|
|
Packit |
79f644 |
if (g_slist_length (servers) > 0)
|
|
Packit |
79f644 |
{
|
|
Packit |
79f644 |
/* set the first server as CM server */
|
|
Packit |
79f644 |
TpawIrcServer *server = servers->data;
|
|
Packit |
79f644 |
gchar *address;
|
|
Packit |
79f644 |
guint port;
|
|
Packit |
79f644 |
gboolean ssl;
|
|
Packit |
79f644 |
gchar *service;
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
g_object_get (server,
|
|
Packit |
79f644 |
"address", &address,
|
|
Packit |
79f644 |
"port", &port,
|
|
Packit |
79f644 |
"ssl", &ssl,
|
|
Packit |
79f644 |
NULL);
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
DEBUG ("Setting server to %s", address);
|
|
Packit |
79f644 |
tpaw_account_settings_set (self->priv->settings, "server",
|
|
Packit |
79f644 |
g_variant_new_string (address));
|
|
Packit |
79f644 |
DEBUG ("Setting port to %u", port);
|
|
Packit |
79f644 |
tpaw_account_settings_set (self->priv->settings, "port",
|
|
Packit |
79f644 |
g_variant_new_uint32 (port));
|
|
Packit |
79f644 |
DEBUG ("Setting use-ssl to %s", ssl ? "TRUE": "FALSE" );
|
|
Packit |
79f644 |
tpaw_account_settings_set (self->priv->settings, "use-ssl",
|
|
Packit |
79f644 |
g_variant_new_boolean (ssl));
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
/* Set Account.Service */
|
|
Packit |
79f644 |
service = dup_network_service (self->priv->network);
|
|
Packit |
79f644 |
DEBUG ("Setting Service to %s", service);
|
|
Packit |
79f644 |
tpaw_account_settings_set_service (self->priv->settings, service);
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
g_free (address);
|
|
Packit |
79f644 |
g_free (service);
|
|
Packit |
79f644 |
}
|
|
Packit |
79f644 |
else
|
|
Packit |
79f644 |
{
|
|
Packit |
79f644 |
/* No server. Unset values */
|
|
Packit |
79f644 |
unset_server_params (self);
|
|
Packit |
79f644 |
}
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
g_slist_foreach (servers, (GFunc) g_object_unref, NULL);
|
|
Packit |
79f644 |
g_slist_free (servers);
|
|
Packit |
79f644 |
}
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
static void
|
|
Packit |
79f644 |
set_label (TpawIrcNetworkChooser *self)
|
|
Packit |
79f644 |
{
|
|
Packit |
79f644 |
g_assert (self->priv->network != NULL);
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
gtk_button_set_label (GTK_BUTTON (self),
|
|
Packit |
79f644 |
tpaw_irc_network_get_name (self->priv->network));
|
|
Packit |
79f644 |
}
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
static void
|
|
Packit |
79f644 |
set_label_from_settings (TpawIrcNetworkChooser *self)
|
|
Packit |
79f644 |
{
|
|
Packit |
79f644 |
gchar *server;
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
tp_clear_object (&self->priv->network);
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
server = tpaw_account_settings_dup_string (self->priv->settings, "server");
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
if (server != NULL)
|
|
Packit |
79f644 |
{
|
|
Packit |
79f644 |
TpawIrcServer *srv;
|
|
Packit |
79f644 |
gint port;
|
|
Packit |
79f644 |
gboolean ssl;
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
self->priv->network =
|
|
Packit |
79f644 |
tpaw_irc_network_manager_find_network_by_address (
|
|
Packit |
79f644 |
self->priv->network_manager, server);
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
if (self->priv->network != NULL)
|
|
Packit |
79f644 |
{
|
|
Packit |
79f644 |
/* The network is known */
|
|
Packit |
79f644 |
g_object_ref (self->priv->network);
|
|
Packit |
79f644 |
set_label (self);
|
|
Packit |
79f644 |
return;
|
|
Packit |
79f644 |
}
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
/* We don't have this network. Let's create it */
|
|
Packit |
79f644 |
port = tpaw_account_settings_get_uint32 (self->priv->settings, "port");
|
|
Packit |
79f644 |
ssl = tpaw_account_settings_get_boolean (self->priv->settings,
|
|
Packit |
79f644 |
"use-ssl");
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
DEBUG ("Create a network %s", server);
|
|
Packit |
79f644 |
self->priv->network = tpaw_irc_network_new (server);
|
|
Packit |
79f644 |
srv = tpaw_irc_server_new (server, port, ssl);
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
tpaw_irc_network_append_server (self->priv->network, srv);
|
|
Packit |
79f644 |
tpaw_irc_network_manager_add (self->priv->network_manager,
|
|
Packit |
79f644 |
self->priv->network);
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
set_label (self);
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
g_object_unref (srv);
|
|
Packit |
79f644 |
g_free (server);
|
|
Packit |
79f644 |
return;
|
|
Packit |
79f644 |
}
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
/* Set default network */
|
|
Packit |
79f644 |
self->priv->network = tpaw_irc_network_manager_find_network_by_address (
|
|
Packit |
79f644 |
self->priv->network_manager, DEFAULT_IRC_NETWORK);
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
if (self->priv->network == NULL)
|
|
Packit |
79f644 |
{
|
|
Packit |
79f644 |
/* Default network is not known, recreate it */
|
|
Packit |
79f644 |
TpawIrcServer *srv;
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
self->priv->network = tpaw_irc_network_new (DEFAULT_IRC_NETWORK);
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
srv = tpaw_irc_server_new (DEFAULT_IRC_NETWORK, DEFAULT_IRC_PORT,
|
|
Packit |
79f644 |
DEFAULT_IRC_SSL);
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
tpaw_irc_network_append_server (self->priv->network, srv);
|
|
Packit |
79f644 |
tpaw_irc_network_manager_add (self->priv->network_manager,
|
|
Packit |
79f644 |
self->priv->network);
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
g_object_unref (srv);
|
|
Packit |
79f644 |
}
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
set_label (self);
|
|
Packit |
79f644 |
update_server_params (self);
|
|
Packit |
79f644 |
g_object_ref (self->priv->network);
|
|
Packit |
79f644 |
}
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
static void
|
|
Packit |
79f644 |
dialog_response_cb (GtkDialog *dialog,
|
|
Packit |
79f644 |
gint response,
|
|
Packit |
79f644 |
TpawIrcNetworkChooser *self)
|
|
Packit |
79f644 |
{
|
|
Packit |
79f644 |
TpawIrcNetworkChooserDialog *chooser =
|
|
Packit |
79f644 |
TPAW_IRC_NETWORK_CHOOSER_DIALOG (self->priv->dialog);
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
if (response != GTK_RESPONSE_CLOSE &&
|
|
Packit |
79f644 |
response != GTK_RESPONSE_DELETE_EVENT)
|
|
Packit |
79f644 |
return;
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
if (tpaw_irc_network_chooser_dialog_get_changed (chooser))
|
|
Packit |
79f644 |
{
|
|
Packit |
79f644 |
tp_clear_object (&self->priv->network);
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
self->priv->network = g_object_ref (
|
|
Packit |
79f644 |
tpaw_irc_network_chooser_dialog_get_network (chooser));
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
update_server_params (self);
|
|
Packit |
79f644 |
set_label (self);
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
g_signal_emit (self, signals[SIG_CHANGED], 0);
|
|
Packit |
79f644 |
}
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
gtk_widget_destroy (self->priv->dialog);
|
|
Packit |
79f644 |
self->priv->dialog = NULL;
|
|
Packit |
79f644 |
}
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
static void
|
|
Packit |
79f644 |
clicked_cb (GtkButton *button,
|
|
Packit |
79f644 |
gpointer user_data)
|
|
Packit |
79f644 |
{
|
|
Packit |
79f644 |
TpawIrcNetworkChooser *self = TPAW_IRC_NETWORK_CHOOSER (button);
|
|
Packit |
79f644 |
GtkWindow *window;
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
if (self->priv->dialog != NULL)
|
|
Packit |
79f644 |
goto out;
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
window = tpaw_get_toplevel_window (GTK_WIDGET (button));
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
self->priv->dialog = tpaw_irc_network_chooser_dialog_new (
|
|
Packit |
79f644 |
self->priv->settings, self->priv->network, window);
|
|
Packit |
79f644 |
gtk_widget_show_all (self->priv->dialog);
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
tp_g_signal_connect_object (self->priv->dialog, "response",
|
|
Packit |
79f644 |
G_CALLBACK (dialog_response_cb), button, 0);
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
out:
|
|
Packit |
79f644 |
tpaw_window_present (GTK_WINDOW (self->priv->dialog));
|
|
Packit |
79f644 |
}
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
static void
|
|
Packit |
79f644 |
tpaw_irc_network_chooser_constructed (GObject *object)
|
|
Packit |
79f644 |
{
|
|
Packit |
79f644 |
TpawIrcNetworkChooser *self = (TpawIrcNetworkChooser *) object;
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
G_OBJECT_CLASS (tpaw_irc_network_chooser_parent_class)->constructed (object);
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
g_assert (self->priv->settings != NULL);
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
set_label_from_settings (self);
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
g_signal_connect (self, "clicked", G_CALLBACK (clicked_cb), self);
|
|
Packit |
79f644 |
}
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
static void
|
|
Packit |
79f644 |
tpaw_irc_network_chooser_dispose (GObject *object)
|
|
Packit |
79f644 |
{
|
|
Packit |
79f644 |
TpawIrcNetworkChooser *self = (TpawIrcNetworkChooser *) object;
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
tp_clear_object (&self->priv->settings);
|
|
Packit |
79f644 |
tp_clear_object (&self->priv->network_manager);
|
|
Packit |
79f644 |
tp_clear_object (&self->priv->network);
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
if (G_OBJECT_CLASS (tpaw_irc_network_chooser_parent_class)->dispose)
|
|
Packit |
79f644 |
G_OBJECT_CLASS (tpaw_irc_network_chooser_parent_class)->dispose (object);
|
|
Packit |
79f644 |
}
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
static void
|
|
Packit |
79f644 |
tpaw_irc_network_chooser_class_init (TpawIrcNetworkChooserClass *klass)
|
|
Packit |
79f644 |
{
|
|
Packit |
79f644 |
GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
object_class->get_property = tpaw_irc_network_chooser_get_property;
|
|
Packit |
79f644 |
object_class->set_property = tpaw_irc_network_chooser_set_property;
|
|
Packit |
79f644 |
object_class->constructed = tpaw_irc_network_chooser_constructed;
|
|
Packit |
79f644 |
object_class->dispose = tpaw_irc_network_chooser_dispose;
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
g_object_class_install_property (object_class, PROP_SETTINGS,
|
|
Packit |
79f644 |
g_param_spec_object ("settings",
|
|
Packit |
79f644 |
"Settings",
|
|
Packit |
79f644 |
"The TpawAccountSettings to show and edit",
|
|
Packit |
79f644 |
TPAW_TYPE_ACCOUNT_SETTINGS,
|
|
Packit |
79f644 |
G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
signals[SIG_CHANGED] = g_signal_new ("changed",
|
|
Packit |
79f644 |
G_OBJECT_CLASS_TYPE (object_class),
|
|
Packit |
79f644 |
G_SIGNAL_RUN_LAST,
|
|
Packit |
79f644 |
0,
|
|
Packit |
79f644 |
NULL, NULL,
|
|
Packit |
79f644 |
g_cclosure_marshal_generic,
|
|
Packit |
79f644 |
G_TYPE_NONE,
|
|
Packit |
79f644 |
0);
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
g_type_class_add_private (object_class,
|
|
Packit |
79f644 |
sizeof (TpawIrcNetworkChooserPriv));
|
|
Packit |
79f644 |
}
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
static void
|
|
Packit |
79f644 |
tpaw_irc_network_chooser_init (TpawIrcNetworkChooser *self)
|
|
Packit |
79f644 |
{
|
|
Packit |
79f644 |
self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self,
|
|
Packit |
79f644 |
TPAW_TYPE_IRC_NETWORK_CHOOSER, TpawIrcNetworkChooserPriv);
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
self->priv->network_manager = tpaw_irc_network_manager_dup_default ();
|
|
Packit |
79f644 |
}
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
GtkWidget *
|
|
Packit |
79f644 |
tpaw_irc_network_chooser_new (TpawAccountSettings *settings)
|
|
Packit |
79f644 |
{
|
|
Packit |
79f644 |
return g_object_new (TPAW_TYPE_IRC_NETWORK_CHOOSER,
|
|
Packit |
79f644 |
"settings", settings,
|
|
Packit |
79f644 |
NULL);
|
|
Packit |
79f644 |
}
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
TpawIrcNetwork *
|
|
Packit |
79f644 |
tpaw_irc_network_chooser_get_network (TpawIrcNetworkChooser *self)
|
|
Packit |
79f644 |
{
|
|
Packit |
79f644 |
return self->priv->network;
|
|
Packit |
79f644 |
}
|