diff options
author | Guillaume Desmottes <gdesmott@gnome.org> | 2008-02-08 10:50:07 +0800 |
---|---|---|
committer | Guillaume Desmottes <gdesmott@gnome.org> | 2008-02-08 10:50:07 +0800 |
commit | c924f0a28d0915078fed85267dc057dd4c371f23 (patch) | |
tree | ff1a0d54ebc88587b210c2cc03825975d4a18dda /libempathy-gtk | |
parent | 9d6ed2d778c6759d2368079291deadbbd669a666 (diff) | |
download | gsoc2013-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.c | 45 |
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 |