aboutsummaryrefslogtreecommitdiffstats
path: root/libempathy-gtk
diff options
context:
space:
mode:
authorGuillaume Desmottes <gdesmott@gnome.org>2008-02-08 10:50:07 +0800
committerGuillaume Desmottes <gdesmott@gnome.org>2008-02-08 10:50:07 +0800
commitc924f0a28d0915078fed85267dc057dd4c371f23 (patch)
treeff1a0d54ebc88587b210c2cc03825975d4a18dda /libempathy-gtk
parent9d6ed2d778c6759d2368079291deadbbd669a666 (diff)
downloadgsoc2013-empathy-c924f0a28d0915078fed85267dc057dd4c371f23.tar
gsoc2013-empathy-c924f0a28d0915078fed85267dc057dd4c371f23.tar.gz
gsoc2013-empathy-c924f0a28d0915078fed85267dc057dd4c371f23.tar.bz2
gsoc2013-empathy-c924f0a28d0915078fed85267dc057dd4c371f23.tar.lz
gsoc2013-empathy-c924f0a28d0915078fed85267dc057dd4c371f23.tar.xz
gsoc2013-empathy-c924f0a28d0915078fed85267dc057dd4c371f23.tar.zst
gsoc2013-empathy-c924f0a28d0915078fed85267dc057dd4c371f23.zip
implement new network
Diffstat (limited to 'libempathy-gtk')
-rw-r--r--libempathy-gtk/empathy-account-widget-irc.c45
1 files changed, 37 insertions, 8 deletions
diff --git a/libempathy-gtk/empathy-account-widget-irc.c b/libempathy-gtk/empathy-account-widget-irc.c
index 96b8879df..d07faeb5b 100644
--- a/libempathy-gtk/empathy-account-widget-irc.c
+++ b/libempathy-gtk/empathy-account-widget-irc.c
@@ -216,14 +216,25 @@ irc_network_dialog_destroy_cb (GtkWidget *widget,
}
static void
+display_irc_network_dialog (EmpathyAccountWidgetIrc *settings,
+ EmpathyIrcNetwork *network)
+{
+ GtkWindow *window;
+ GtkWidget *dialog;
+
+ window = empathy_get_toplevel_window (settings->vbox_settings);
+ dialog = irc_network_dialog_show (network, GTK_WIDGET (window));
+ g_signal_connect (dialog, "destroy",
+ G_CALLBACK (irc_network_dialog_destroy_cb), settings);
+}
+
+static void
account_widget_irc_button_network_clicked_cb (GtkWidget *button,
EmpathyAccountWidgetIrc *settings)
{
GtkTreeIter iter;
GtkTreeModel *model;
EmpathyIrcNetwork *network;
- GtkWindow *window;
- GtkWidget *dialog;
gtk_combo_box_get_active_iter (GTK_COMBO_BOX (settings->combobox_network),
&iter);
@@ -232,10 +243,7 @@ account_widget_irc_button_network_clicked_cb (GtkWidget *button,
g_assert (network != NULL);
- window = empathy_get_toplevel_window (settings->vbox_settings);
- dialog = irc_network_dialog_show (network, GTK_WIDGET (window));
- g_signal_connect (dialog, "destroy",
- G_CALLBACK (irc_network_dialog_destroy_cb), settings);
+ display_irc_network_dialog (settings, network);
g_object_unref (network);
}
@@ -277,8 +285,29 @@ static void
account_widget_irc_button_add_network_clicked_cb (GtkWidget *button,
EmpathyAccountWidgetIrc *settings)
{
- /* TODO */
- g_print ("add network\n");
+ EmpathyIrcNetwork *network;
+ GtkTreeModel *model;
+ GtkListStore *store;
+ gchar *name;
+ GtkTreeIter iter;
+
+ network = empathy_irc_network_new (_("New Network"));
+ empathy_irc_network_manager_add (settings->network_manager, network);
+
+ model = gtk_combo_box_get_model (GTK_COMBO_BOX (settings->combobox_network));
+ store = GTK_LIST_STORE (model);
+
+ g_object_get (network, "name", &name, NULL);
+ gtk_list_store_append (store, &iter);
+ gtk_list_store_set (store, &iter, COL_NETWORK_OBJ, network,
+ COL_NETWORK_NAME, name, -1);
+ gtk_combo_box_set_active_iter (GTK_COMBO_BOX (settings->combobox_network),
+ &iter);
+ g_free (name);
+
+ display_irc_network_dialog (settings, network);
+
+ g_object_unref (network);
}
static void