diff -Naur old/configure.ac new/configure.ac --- old/configure.ac 2009-04-10 19:28:22.000000000 +0000 +++ new/configure.ac 2010-03-09 19:52:24.317803883 +0000 @@ -161,9 +161,9 @@ AM_CONDITIONAL([HAVE_OPENSP],[test "x$en AC_MSG_CHECKING([which extensions to build]) -ALL_EXTENSIONS="actions adblock auto-reload auto-scroller certificates error-viewer extensions-manager-ui gestures greasemonkey java-console livehttpheaders page-info permissions push-scroller rss sample sample-mozilla select-stylesheet sessionsaver sidebar smart-bookmarks tab-groups tab-states" -USEFUL_EXTENSIONS="actions adblock auto-reload auto-scroller certificates error-viewer extensions-manager-ui gestures java-console page-info push-scroller select-stylesheet sidebar smart-bookmarks tab-groups tab-states" -DEFAULT_EXTENSIONS="actions adblock auto-scroller certificates error-viewer extensions-manager-ui gestures java-console page-info push-scroller select-stylesheet sidebar smart-bookmarks tab-groups tab-states" +ALL_EXTENSIONS="actions adblock auto-reload auto-scroller certificates error-viewer extensions-manager-ui gestures gmail-manager greasemonkey java-console livehttpheaders page-info permissions push-scroller rss sample sample-mozilla select-stylesheet sessionsaver sidebar smart-bookmarks tab-groups tab-states" +USEFUL_EXTENSIONS="actions adblock auto-reload auto-scroller certificates error-viewer extensions-manager-ui gestures gmail-manager java-console page-info push-scroller select-stylesheet sidebar smart-bookmarks tab-groups tab-states" +DEFAULT_EXTENSIONS="actions adblock auto-scroller certificates error-viewer extensions-manager-ui gestures gmail-manager java-console page-info push-scroller select-stylesheet sidebar smart-bookmarks tab-groups tab-states" PYTHON_ALL_EXTENSIONS="python-console sample-python favicon cc-license-viewer epilicious" PYTHON_USEFUL_EXTENSIONS="python-console favicon cc-license-viewer" @@ -399,6 +399,7 @@ extensions/error-viewer/mozilla/Makefile extensions/error-viewer/opensp/Makefile extensions/extensions-manager-ui/Makefile extensions/favicon/Makefile +extensions/gmail-manager/Makefile extensions/greasemonkey/Makefile extensions/greasemonkey/mozilla/Makefile extensions/livehttpheaders/Makefile diff -Naur old/extensions/gmail-manager/gmail.c new/extensions/gmail-manager/gmail.c --- old/extensions/gmail-manager/gmail.c 2010-03-09 22:29:42.653795327 +0000 +++ new/extensions/gmail-manager/gmail.c 2010-03-09 22:31:52.563795461 +0000 @@ -379,32 +379,34 @@ gmail_account_load () char *path = g_strconcat (g_get_home_dir (), GMAIL_ACCOUNT_PATH, NULL); FILE *file = fopen (path, "rw"); g_free (path); + if(file) + { + fseek (file, 0, SEEK_END); + int size = ftell (file); + rewind (file); + char *buff = g_malloc (size * sizeof(char) + 1); + fread (buff, 1, size, file); + buff[size] = '\0'; + fclose (file); - fseek (file, 0, SEEK_END); - int size = ftell (file); - rewind (file); - char *buff = g_malloc (size * sizeof(char) + 1); - fread (buff, 1, size, file); - buff[size] = '\0'; - fclose (file); + /* parsing file... */ + char *ln = buff; + char *next = NULL; + while (ln[0] != '\0') { + next = strchr (((next == NULL) ? buff : (next + 1)), '\n'); + ln[next - ln] = '\0'; - /* parsing file... */ - char *ln = buff; - char *next = NULL; - while (ln[0] != '\0') { - next = strchr (((next == NULL) ? buff : (next + 1)), '\n'); - ln[next - ln] = '\0'; + char **split = g_strsplit (ln, " ", 3); + accounts = g_list_append (accounts, + g_object_new (GMAIL_ACCOUNT_TYPE, + "mail", split[0], + "password", split[1], NULL)); + g_strfreev (split); + ln = next + 1; + } - char **split = g_strsplit (ln, " ", 3); - accounts = g_list_append (accounts, - g_object_new (GMAIL_ACCOUNT_TYPE, - "mail", split[0], - "password", split[1], NULL)); - g_strfreev (split); - ln = next + 1; + g_free (buff); } - - g_free (buff); return accounts; } diff -Naur old/extensions/gmail-manager/ephy-gmail-extension.c new/extensions/gmail-manager/ephy-gmail-extension.c --- old/extensions/gmail-manager/ephy-gmail-extension.c 2007-06-17 18:57:02.000000000 +0000 +++ new/extensions/gmail-manager/ephy-gmail-extension.c 2010-03-09 19:55:44.696794835 +0000 @@ -30,7 +30,7 @@ #define WINDOW_DATA_KEY "EphyGmailExtensionWindowData" #define GMAIL_ICON_PATH \ - "/.gnome2/epiphany/extensions/data/gmailmanager/gmail.png" + SHARE_DIR"/icons/gmail.png" #include #include @@ -184,7 +184,7 @@ impl_detach_window (EphyExtension *ext, static void impl_attach_tab (EphyExtension *ext, EphyWindow *window, - EphyTab *tab) + EphyEmbed *tab) { LOG ("attach_tab"); } @@ -192,7 +192,7 @@ impl_attach_tab (EphyExtension *ext, static void impl_detach_tab (EphyExtension *ext, EphyWindow *window, - EphyTab *tab) + EphyEmbed *tab) { LOG("detach_tab"); } --- old/extensions/gmail-manager/Makefile.am 2010-03-09 20:35:04.000000000 +0000 +++ new/extensions/gmail-manager/Makefile.am 2010-03-09 20:35:12.000000000 +0000 @@ -18,8 +18,7 @@ libgmailextension_la_SOURCES = \ parser.c \ parser.h \ gmail-ui.h \ - gmail-ui.c \ - test.c + gmail-ui.c libgmailextension_la_CPPFLAGS = \ -I$(top_srcdir)/include \ @@ -39,6 +38,12 @@ libgmailextension_la_LDFLAGS = \ -lnotify \ $(AM_LDFLAGS) +glade_DATA = gmailmanager/gmail.glade +gladedir = $(pkgdatadir)/glade + +icons_DATA = gmailmanager/gmail.png +iconsdir = $(pkgdatadir)/icons + extensioninidir = $(extensiondir) extensionini_in_files = gmail.ephy-extension.in.in extensionini_DATA = $(extensionini_in_files:.ephy-extension.in.in=.ephy-extension) @@ -53,4 +58,4 @@ extensionini_DATA = $(extensionini_in_fi CLEANFILES = $(extensionini_DATA) DISTCLEANFILES = $(extensionini_DATA) -EXTRA_DIST = $(extensionini_in_files) +EXTRA_DIST = $(extensionini_in_files) $(glade_DATA) $(icons_DATA) --- old/extensions/gmail-manager/gmail-status-icon.c 2007-06-17 18:57:02.000000000 +0000 +++ new/extensions/gmail-manager/gmail-status-icon.c 2010-03-10 01:40:13.933795241 +0000 @@ -30,7 +30,7 @@ #define LOG(str) (printf("%s\n", (str))) #define GMAIL_ICON_PATH \ - "/.gnome2/epiphany/extensions/data/gmailmanager/gmail.png" + SHARE_DIR"/icons/gmail.png" #define STATUS_ICON_PRIVATE(o) \ (G_TYPE_INSTANCE_GET_PRIVATE ((o), GMAIL_TYPE_STATUS_ICON,\ @@ -618,8 +618,7 @@ gmail_status_icon_init_gui (GmailStatusI TRUE); /* loading the icon... */ - char *icon_path = g_strconcat (g_get_home_dir (), GMAIL_ICON_PATH, - NULL); + char *icon_path = g_strconcat (GMAIL_ICON_PATH,NULL) ; GtkWidget *icon = gtk_image_new_from_file (icon_path); g_free (icon_path); @@ -644,7 +643,7 @@ gmail_status_icon_init_gui (GmailStatusI self); /* set timeouts */ self->priv->timer_login = - g_timeout_add (1000 * 120, + g_timeout_add (1000 * 60, (GSourceFunc) gmail_status_icon_handle_login, self); } @@ -678,8 +677,8 @@ gmail_status_icon_clicked_cb (GtkMenuIte char *pass; g_object_get (acc, "password", &pass, NULL); char *tmp = g_strconcat ("https://www.google.com/accounts/ServiceLoginAuth?ltmpl=yj_wsad<mplcache=2&continue=https%3A%2F%2Fmail.google.com%2Fmail%3F&service=mail&rm=false<mpl=yj_wsad&Email=", user,"&Passwd=" ,pass, "&rmShown=1&null=Sign+in", NULL); - EphyTab *tab = ephy_window_get_active_tab (EPHY_WINDOW ( - self->priv->window)); + EphyEmbed *tab = NULL; + ephy_shell_new_tab (ephy_shell_get_default (), EPHY_WINDOW (self->priv->window), tab, tmp, @@ -832,7 +831,7 @@ gmail_status_icon_open_browser (GtkWidge */ char *url = (char*) g_hash_table_lookup (self->priv->popup_table, w); EphyWindow *wnd = EPHY_WINDOW (self->priv->window); - EphyTab *tab = ephy_window_get_active_tab (wnd); + EphyEmbed *tab = NULL; ephy_shell_new_tab (ephy_shell_get_default (), wnd, tab, url, EPHY_NEW_TAB_OPEN_PAGE | @@ -885,12 +884,15 @@ gmail_status_icon_enter_cb (GtkWidget *w { if (self->priv->popup_window) return; gmail_status_icon_create_popup (self); - g_signal_connect_after (self->priv->popup_window, "leave-notify-event", - G_CALLBACK (gmail_status_icon_popup_leave_cb), - self); - g_signal_connect_after (self->priv->popup_window, "enter-notify-event", - G_CALLBACK (gmail_status_icon_popup_enter_cb), - self); + if( self->priv->popup_window != NULL ) + { + g_signal_connect_after (self->priv->popup_window, "leave-notify-event", + G_CALLBACK (gmail_status_icon_popup_leave_cb), + self); + g_signal_connect_after (self->priv->popup_window, "enter-notify-event", + G_CALLBACK (gmail_status_icon_popup_enter_cb), + self); + } } void @@ -1041,7 +1043,7 @@ gmail_status_icon_display_libnotify (Gma } n = notify_notification_new ("New Mail", - str, NULL, NULL); + str, GMAIL_ICON_PATH, NULL); /* we'll show the message for about 5 seconds */ notify_notification_set_timeout (n, 5000); notify_notification_attach_to_widget (n, GTK_WIDGET ( --- old/extensions/gmail-manager/gmail-ui.c 2010-03-10 00:13:55.432794645 +0000 +++ new/extensions/gmail-manager/gmail-ui.c 2010-03-10 00:14:26.227803868 +0000 @@ -35,7 +35,7 @@ static GType type = 0; #define LOG(m) printf ("%s\n", (m)) #define GMAIL_GLADE_FILE \ - "/.gnome2/epiphany/extensions/data/gmailmanager/gmail.glade" + SHARE_DIR"/glade/gmail.glade" #define GMAIL_UI_GET_PRIVATE(object) (G_TYPE_INSTANCE_GET_PRIVATE (\ (object), \ @@ -365,7 +365,7 @@ gmail_ui_changed_cb (GmailList *list, Gm gmail_ui_changed_set_model, self); - g_free (active); + if( active != NULL ) g_free (active); self->priv->active_tmp = NULL; } @@ -396,7 +396,7 @@ gmail_ui_sync_box_insert_cb (GmailAccoun char *mail; g_object_get (acc, "mail", &mail, NULL); gtk_combo_box_append_text (box, mail); - g_free (mail); + if( mail != NULL ) g_free (mail); } /* @@ -455,16 +455,18 @@ gmail_ui_dlg_changed (GtkComboBox *box, if (self->priv->list == NULL) return; char *mail = gtk_combo_box_get_active_text (box); - g_return_if_fail (mail != NULL); - GmailAccount *acc = gmail_list_find_account (self->priv->list, mail); - g_return_if_fail (acc != NULL); - - char *val1, *val2; - g_object_get (acc, "mail", &val1, "password", &val2, NULL); - gtk_entry_set_text (self->priv->mail_entry, val1); - gtk_entry_set_text (self->priv->password_entry, val2); - g_free (val1); - g_free (val2); + if (mail != NULL) + { + GmailAccount *acc = gmail_list_find_account (self->priv->list, mail); + g_return_if_fail (acc != NULL); + + char *val1, *val2; + g_object_get (acc, "mail", &val1, "password", &val2, NULL); + gtk_entry_set_text (self->priv->mail_entry, val1); + gtk_entry_set_text (self->priv->password_entry, val2); + if(val1 != NULL) g_free (val1); + if(val2 != NULL) g_free (val2); + } } void gmail_ui_dlg_add (GtkButton *ptr, gpointer user_data) @@ -472,10 +474,9 @@ void gmail_ui_dlg_add (GtkButton *ptr, g GmailUI *self = (GmailUI*) user_data; g_assert (self != NULL); - char *glade_path = g_strconcat (g_get_home_dir (), GMAIL_GLADE_FILE, - NULL); + char *glade_path = g_strconcat (GMAIL_GLADE_FILE,NULL); GladeXML *xml = glade_xml_new (glade_path, NULL, NULL); - g_free (glade_path); + if (glade_path != NULL ) g_free (glade_path); GtkDialog *dlg = GTK_DIALOG (glade_xml_get_widget (xml, "gmail_new_dlg")); @@ -566,9 +567,9 @@ gmail_ui_get_type () void gmail_ui_init_gtk (GmailUI *ui) { - char *path = g_strconcat (g_get_home_dir (), GMAIL_GLADE_FILE, NULL); + char *path = g_strconcat (GMAIL_GLADE_FILE, NULL); GladeXML *xml = glade_xml_new (path, NULL, NULL); - g_free(path); + if(path != NULL) g_free(path); GtkDialog *dlg = GTK_DIALOG (glade_xml_get_widget (xml, "gmail_edit_dlg"));