#include <glib/gi18n.h>
#include <libempathy/empathy-contact.h>
-#include <libempathy/empathy-debug.h>
#include <libempathy/empathy-utils.h>
#include <libempathy/empathy-chatroom-manager.h>
#include <libempathy/empathy-chatroom.h>
#include <libempathy-gtk/empathy-ui-utils.h>
#include <libempathy-gtk/empathy-geometry.h>
#include <libempathy-gtk/empathy-conf.h>
-#include <libempathy-gtk/empathy-accounts-dialog.h>
#include <libempathy-gtk/empathy-log-window.h>
#include <libempathy-gtk/empathy-new-message-dialog.h>
#include <libempathy-gtk/empathy-gtk-enum-types.h>
+#include "empathy-accounts-dialog.h"
#include "empathy-main-window.h"
#include "ephy-spinner.h"
#include "empathy-preferences.h"
#include "empathy-new-chatroom-dialog.h"
#include "empathy-chatrooms-window.h"
-#define DEBUG_DOMAIN "MainWindow"
+#define DEBUG_FLAG EMPATHY_DEBUG_OTHER
+#include <libempathy/empathy-debug.h>
/* Minimum width of roster window if something goes wrong. */
#define MIN_WIDTH 50
EmpathyContactListStore *list_store;
MissionControl *mc;
EmpathyChatroomManager *chatroom_manager;
+ gpointer token;
GtkWidget *window;
GtkWidget *main_vbox;
gboolean show_avatars;
gboolean compact_contact_list;
gint x, y, w, h;
+ gchar *filename;
if (window) {
empathy_window_present (GTK_WINDOW (window->window), TRUE);
window = g_new0 (EmpathyMainWindow, 1);
/* Set up interface */
- glade = empathy_glade_get_file ("empathy-main-window.glade",
+ filename = empathy_file_lookup ("empathy-main-window.glade", "src");
+ glade = empathy_glade_get_file (filename,
"main_window",
NULL,
"main_window", &window->window,
"presence_toolbar", &window->presence_toolbar,
"roster_scrolledwindow", &sw,
NULL);
+ g_free (filename);
empathy_glade_connect (glade,
window,
g_object_unref (glade);
window->mc = empathy_mission_control_new ();
- dbus_g_proxy_connect_signal (DBUS_G_PROXY (window->mc), "AccountStatusChanged",
- G_CALLBACK (main_window_status_changed_cb),
- window, NULL);
+ window->token = empathy_connect_to_account_status_changed (window->mc,
+ G_CALLBACK (main_window_status_changed_cb),
+ window, NULL);
window->errors = g_hash_table_new_full (empathy_account_hash,
empathy_account_equal,
list_iface = EMPATHY_CONTACT_LIST (empathy_contact_manager_new ());
window->list_store = empathy_contact_list_store_new (list_iface);
window->list_view = empathy_contact_list_view_new (window->list_store,
- EMPATHY_CONTACT_LIST_FEATURE_ALL);
+ EMPATHY_CONTACT_LIST_FEATURE_ALL,
+ EMPATHY_CONTACT_FEATURE_ALL);
g_object_unref (list_iface);
gtk_widget_show (GTK_WIDGET (window->list_view));
/* Use the defaults from the glade file if we
* don't have good w, h geometry.
*/
- empathy_debug (DEBUG_DOMAIN, "Configuring window default size w:%d, h:%d", w, h);
+ DEBUG ("Configuring window default size w:%d, h:%d", w, h);
gtk_window_set_default_size (GTK_WINDOW (window->window), w, h);
}
/* Let the window manager position it if we
* don't have good x, y coordinates.
*/
- empathy_debug (DEBUG_DOMAIN, "Configuring window default position x:%d, y:%d", x, y);
+ DEBUG ("Configuring window default position x:%d, y:%d", x, y);
gtk_window_move (GTK_WINDOW (window->window), x, y);
}
/* Save user-defined accelerators. */
main_window_accels_save ();
- dbus_g_proxy_disconnect_signal (DBUS_G_PROXY (window->mc), "AccountStatusChanged",
- G_CALLBACK (main_window_status_changed_cb),
- window);
+ empathy_disconnect_account_status_changed (window->token);
if (window->size_timeout_id) {
g_source_remove (window->size_timeout_id);
account = empathy_chatroom_get_account (chatroom);
room = empathy_chatroom_get_room (chatroom);
- empathy_debug (DEBUG_DOMAIN, "Requesting channel for '%s'", room);
+ DEBUG ("Requesting channel for '%s'", room);
mission_control_request_channel_with_string_handle (mc,
account,
GdkEventButton *event,
EmpathyMainWindow *window)
{
- EmpathyContact *contact;
- gchar *group;
+ GtkWidget *submenu;
if (!event->button == 1) {
return FALSE;
}
- group = empathy_contact_list_view_get_selected_group (window->list_view);
- if (group) {
+ submenu = empathy_contact_list_view_get_contact_menu (window->list_view);
+ if (submenu) {
GtkMenuItem *item;
GtkWidget *label;
- GtkWidget *submenu;
item = GTK_MENU_ITEM (window->edit_context);
label = gtk_bin_get_child (GTK_BIN (item));
- gtk_label_set_text (GTK_LABEL (label), _("Group"));
+ gtk_label_set_text (GTK_LABEL (label), _("Contact"));
gtk_widget_show (window->edit_context);
gtk_widget_show (window->edit_context_separator);
- submenu = empathy_contact_list_view_get_group_menu (window->list_view);
gtk_menu_item_set_submenu (item, submenu);
- g_free (group);
-
return FALSE;
}
- contact = empathy_contact_list_view_get_selected (window->list_view);
- if (contact) {
+ submenu = empathy_contact_list_view_get_group_menu (window->list_view);
+ if (submenu) {
GtkMenuItem *item;
GtkWidget *label;
- GtkWidget *submenu;
item = GTK_MENU_ITEM (window->edit_context);
label = gtk_bin_get_child (GTK_BIN (item));
- gtk_label_set_text (GTK_LABEL (label), _("Contact"));
+ gtk_label_set_text (GTK_LABEL (label), _("Group"));
gtk_widget_show (window->edit_context);
gtk_widget_show (window->edit_context_separator);
- submenu = empathy_contact_list_view_get_contact_menu (window->list_view,
- contact);
gtk_menu_item_set_submenu (item, submenu);
- g_object_unref (contact);
-
return FALSE;
}
main_window_edit_accounts_cb (GtkWidget *widget,
EmpathyMainWindow *window)
{
- empathy_accounts_dialog_show (GTK_WINDOW (window->window));
+ empathy_accounts_dialog_show (GTK_WINDOW (window->window), NULL);
}
static void
main_window_help_contents_cb (GtkWidget *widget,
EmpathyMainWindow *window)
{
- //empathy_help_show ();
+ empathy_url_show ("ghelp:empathy");
}
static gboolean
return FALSE;
}
- empathy_accounts_dialog_show (GTK_WINDOW (window->window));
+ empathy_accounts_dialog_show (GTK_WINDOW (window->window), NULL);
return FALSE;
}
McAccount *account;
GtkWidget *error_widget;
- empathy_accounts_dialog_show (GTK_WINDOW (window->window));
-
account = g_object_get_data (G_OBJECT (button), "account");
+ empathy_accounts_dialog_show (GTK_WINDOW (window->window), account);
+
error_widget = g_hash_table_lookup (window->errors, account);
gtk_widget_destroy (error_widget);
g_hash_table_remove (window->errors, account);
message = _("Certificate fingerprint mismatch");
break;
case TP_CONNECTION_STATUS_REASON_CERT_SELF_SIGNED:
- message = _("Certificate self signed");
+ message = _("Certificate self-signed");
break;
case TP_CONNECTION_STATUS_REASON_CERT_OTHER_ERROR:
message = _("Certificate error");
filename = g_build_filename (g_get_home_dir (), ".gnome2", PACKAGE_NAME, ACCELS_FILENAME, NULL);
if (g_file_test (filename, G_FILE_TEST_EXISTS)) {
- empathy_debug (DEBUG_DOMAIN, "Loading from:'%s'", filename);
+ DEBUG ("Loading from:'%s'", filename);
gtk_accel_map_load (filename);
}
file_with_path = g_build_filename (dir, ACCELS_FILENAME, NULL);
g_free (dir);
- empathy_debug (DEBUG_DOMAIN, "Saving to:'%s'", file_with_path);
+ DEBUG ("Saving to:'%s'", file_with_path);
gtk_accel_map_save (file_with_path);
g_free (file_with_path);