diff options
-rw-r--r-- | README | 7 | ||||
-rw-r--r-- | accounts/empathy-accounts-main.c | 1 | ||||
-rw-r--r-- | contact-list/empathy-contact-list-main.c | 14 | ||||
-rw-r--r-- | libempathy-gtk/empathy-main-window.c | 40 | ||||
-rw-r--r-- | libempathy-gtk/empathy-main-window.h | 2 |
5 files changed, 39 insertions, 25 deletions
@@ -4,15 +4,12 @@ How to use empathy ? $ ./autogen $ make && make install -2) Setup and enable some accounts -$ empathy-accounts - -3) Start the MC +2) Start the MC $ empathy-launcher This will start MC and connect all enabled accounts. If you start a private chat or someone is saying something to you, empathy-chat will be started automagicaly and display a chat UI for your conversation. -4) To see the contact list +3) To see the contact list and setting accounts $ empathy-contact-list diff --git a/accounts/empathy-accounts-main.c b/accounts/empathy-accounts-main.c index 10b85a222..e65620342 100644 --- a/accounts/empathy-accounts-main.c +++ b/accounts/empathy-accounts-main.c @@ -48,7 +48,6 @@ main (int argc, char *argv[]) dialog = gossip_accounts_dialog_show (); - gtk_widget_show (dialog); g_signal_connect (dialog, "destroy", G_CALLBACK (destroy_cb), NULL); diff --git a/contact-list/empathy-contact-list-main.c b/contact-list/empathy-contact-list-main.c index dfa7695e3..b43b1c20a 100644 --- a/contact-list/empathy-contact-list-main.c +++ b/contact-list/empathy-contact-list-main.c @@ -27,9 +27,12 @@ #include <glib.h> #include <gtk/gtk.h> +#include <libmissioncontrol/mc-account.h> + #include <libempathy/empathy-session.h> #include <libempathy-gtk/empathy-main-window.h> #include <libempathy-gtk/gossip-stock.h> +#include <libempathy-gtk/gossip-accounts-dialog.h> static void destroy_cb (GtkWidget *window, @@ -44,17 +47,24 @@ int main (int argc, char *argv[]) { GtkWidget *window; + GList *accounts; gtk_init (&argc, &argv); - window = empathy_main_window_new (); + window = empathy_main_window_show (); gossip_stock_init (window); g_signal_connect (window, "destroy", G_CALLBACK (destroy_cb), NULL); - gtk_widget_show (window); + /* Show the accounts dialog if there is no enabled accounts */ + accounts = mc_accounts_list_by_enabled (TRUE); + if (accounts) { + mc_accounts_list_free (accounts); + } else { + gossip_accounts_dialog_show (); + } gtk_main (); diff --git a/libempathy-gtk/empathy-main-window.c b/libempathy-gtk/empathy-main-window.c index 257ade9bd..f3d3a3add 100644 --- a/libempathy-gtk/empathy-main-window.c +++ b/libempathy-gtk/empathy-main-window.c @@ -39,6 +39,7 @@ #include "gossip-status-presets.h" #include "gossip-geometry.h" #include "gossip-preferences.h" +#include "gossip-accounts-dialog.h" #define DEBUG_DOMAIN "EmpathyMainWindow" @@ -155,20 +156,25 @@ static void main_window_notify_compact_contact_list_cb (GossipConf EmpathyMainWindow *window); GtkWidget * -empathy_main_window_new (void) -{ - EmpathyMainWindow *window; - GladeXML *glade; - GossipConf *conf; - GtkWidget *sw; - GtkWidget *show_offline_widget; - GtkWidget *ebox; - GtkToolItem *item; - gchar *str; - gboolean show_offline; - gboolean show_avatars; - gboolean compact_contact_list; - gint x, y, w, h; +empathy_main_window_show (void) +{ + static EmpathyMainWindow *window = NULL; + GladeXML *glade; + GossipConf *conf; + GtkWidget *sw; + GtkWidget *show_offline_widget; + GtkWidget *ebox; + GtkToolItem *item; + gchar *str; + gboolean show_offline; + gboolean show_avatars; + gboolean compact_contact_list; + gint x, y, w, h; + + if (window) { + gtk_window_present (GTK_WINDOW (window->window)); + return window->window; + } window = g_new0 (EmpathyMainWindow, 1); @@ -332,6 +338,8 @@ empathy_main_window_new (void) "is-compact", compact_contact_list, NULL); + gtk_widget_show (window->window); + return window->window; } @@ -509,7 +517,7 @@ static void main_window_edit_accounts_cb (GtkWidget *widget, EmpathyMainWindow *window) { - //gossip_accounts_dialog_show (NULL); + gossip_accounts_dialog_show (); } static void @@ -550,7 +558,7 @@ main_window_throbber_button_press_event_cb (GtkWidget *throbber_ebox, return FALSE; } - //gossip_accounts_dialog_show (NULL); + gossip_accounts_dialog_show (); return FALSE; } diff --git a/libempathy-gtk/empathy-main-window.h b/libempathy-gtk/empathy-main-window.h index 91d2df205..eca78da1e 100644 --- a/libempathy-gtk/empathy-main-window.h +++ b/libempathy-gtk/empathy-main-window.h @@ -27,7 +27,7 @@ G_BEGIN_DECLS -GtkWidget *empathy_main_window_new (void); +GtkWidget *empathy_main_window_show (void); G_END_DECLS |