2012-11-28 [colin] 3.9.0cvs28
[claws.git] / src / mainwindow.c
index 99d5e5219d63fe7374515708f3cc99e6cc76ed54..ed944f64e389b6ffa482014c01a78dd6319fb57c 100644 (file)
 #include "main.h"
 #include "mainwindow.h"
 #include "folderview.h"
+#include "folder_item_prefs.h"
 #include "foldersel.h"
 #include "summaryview.h"
 #include "summary_search.h"
 #include "messageview.h"
+#include "mimeview.h"
 #include "message_search.h"
 #include "headerview.h"
 #include "menu.h"
@@ -83,6 +85,7 @@
 #include "tags.h"
 #include "textview.h"
 #include "imap.h"
+#include "news.h"
 #include "socket.h"
 #include "printing.h"
 #ifdef G_OS_WIN32
@@ -437,7 +440,7 @@ static gint mailing_list_create_submenu(MainWindow *mainwindow,
 
 static gint mailing_list_populate_submenu(GtkWidget *menu, const gchar * list_header);
        
-static void get_url_part(const gchar **buf, gchar *url_decoded, gint maxlen);
+static void get_url_part(const gchar **buf, gchar *url_decoded);
 
 static void mailing_list_compose(GtkWidget *w, gpointer *data);
  
@@ -1175,7 +1178,7 @@ static void mainwindow_colorlabel_menu_create(MainWindow *mainwin, gboolean refr
        accel_path = g_strdup_printf("<ClawsColorLabels>/None");
        gtk_menu_item_set_accel_path(GTK_MENU_ITEM(item), accel_path);
        g_free(accel_path);
-       gtk_accel_map_add_entry("<ClawsColorLabels>/None", GDK_0, GDK_CONTROL_MASK);
+       gtk_accel_map_add_entry("<ClawsColorLabels>/None", GDK_KEY_0, GDK_CONTROL_MASK);
 
        item = gtk_menu_item_new();
        gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
@@ -1195,7 +1198,7 @@ static void mainwindow_colorlabel_menu_create(MainWindow *mainwin, gboolean refr
                accel_path = g_strdup_printf("<ClawsColorLabels>/%d", i+1);
                gtk_menu_item_set_accel_path(GTK_MENU_ITEM(item), accel_path);
                if (i < 9)
-                       gtk_accel_map_add_entry(accel_path, GDK_1+i, GDK_CONTROL_MASK);
+                       gtk_accel_map_add_entry(accel_path, GDK_KEY_1+i, GDK_CONTROL_MASK);
                g_free(accel_path);
                g_signal_connect (gtk_ui_manager_get_accel_group(mainwin->ui_manager), 
                        "accel-changed", G_CALLBACK (mainwin_accel_changed_cb), item);
@@ -1300,7 +1303,7 @@ static void mainwindow_tags_menu_create(MainWindow *mainwin, gboolean refresh)
        accel_path = g_strdup_printf("<ClawsTags>/ApplyTags");
        gtk_menu_item_set_accel_path(GTK_MENU_ITEM(item), accel_path);
        g_free(accel_path);
-       gtk_accel_map_add_entry("<ClawsTags>/ApplyTags", GDK_T, GDK_CONTROL_MASK|GDK_SHIFT_MASK);
+       gtk_accel_map_add_entry("<ClawsTags>/ApplyTags", GDK_KEY_T, GDK_CONTROL_MASK|GDK_SHIFT_MASK);
 
        g_slist_free(orig);
        gtk_widget_show(menu);
@@ -2916,7 +2919,6 @@ void main_window_toggle_message_view(MainWindow *mainwin)
                }
                break;
        case WIDE_LAYOUT:
-               ppaned = mainwin->hpaned;
                container = mainwin->vpaned;
                if (gtk_widget_get_parent(mainwin->messageview->vbox) != NULL) {
                        mainwin->messageview->visible = FALSE;
@@ -3389,7 +3391,6 @@ void main_window_set_menu_sensitive(MainWindow *mainwin)
                              messageview_is_visible(mainwin->messageview));
 
        summaryview = mainwin->summaryview;
-       menu_path = "Menu/View/Sort/DontSort";
 
        switch (summaryview->sort_key) {
        case SORT_BY_NUMBER:
@@ -3561,10 +3562,10 @@ static gint mailing_list_populate_submenu (GtkWidget *menuitem, const gchar * li
        g_list_free(children);
        if (list_header) {
                for (url_pt = list_header; url_pt && *url_pt;) {
-                       get_url_part (&url_pt, url_decoded, BUFFSIZE);
+                       get_url_part (&url_pt, url_decoded);
                        item = NULL;
                        if (!g_ascii_strncasecmp(url_decoded, "mailto:", 7)) {
-                               item = gtk_menu_item_new_with_label ((url_decoded));
+                               item = cm_menu_item_new_label_from_url ((url_decoded));
                                g_signal_connect(G_OBJECT(item), "activate",
                                                 G_CALLBACK(mailing_list_compose),
                                                 NULL);
@@ -3572,7 +3573,7 @@ static gint mailing_list_populate_submenu (GtkWidget *menuitem, const gchar * li
                        else if (!g_ascii_strncasecmp(url_decoded, "http:", 5) ||
                                 !g_ascii_strncasecmp(url_decoded, "https:",6)) {
 
-                               item = gtk_menu_item_new_with_label ((url_decoded));
+                               item = cm_menu_item_new_label_from_url ((url_decoded));
                                g_signal_connect(G_OBJECT(item), "activate",
                                                 G_CALLBACK(mailing_list_open_uri),
                                                 NULL);
@@ -3593,7 +3594,7 @@ static gint mailing_list_populate_submenu (GtkWidget *menuitem, const gchar * li
        return menu_nb;
 }
 
-static void get_url_part (const gchar **buffer, gchar *url_decoded, gint maxlen)
+static void get_url_part (const gchar **buffer, gchar *url_decoded)
 {
        gchar tmp[BUFFSIZE];
        const gchar *buf;
@@ -3616,7 +3617,9 @@ static void get_url_part (const gchar **buffer, gchar *url_decoded, gint maxlen)
                buf++;
                if (!strncmp(buf, "mailto:", strlen("mailto:")))
                        with_plus = FALSE;
-               for (i = 0; *buf != '>' && *buf != 0x00 && i<maxlen; tmp[i++] = *(buf++));
+               for (i = 0;
+                    *buf != '>' && *buf != 0x00 && i < BUFFSIZE;
+                       tmp[i++] = *(buf++));
                buf++;
        }
        else  {
@@ -3625,13 +3628,13 @@ static void get_url_part (const gchar **buffer, gchar *url_decoded, gint maxlen)
                return;
        }
        
-       tmp[i]       = 0x00;
        *url_decoded = '\0';
        *buffer = NULL;
        
-       if (i == maxlen) {
+       if (i == BUFFSIZE) {
                return;
        }
+       tmp[i] = 0x00;
        decode_uri_with_plus (url_decoded, (const gchar *)tmp, with_plus);
 
        /* Prepare the work for the next url in the list */
@@ -4370,6 +4373,7 @@ static void online_switch_clicked (GtkButton *btn, gpointer data)
                        mainwindow_check_synchronise(mainwin, TRUE);
                prefs_common.work_offline = TRUE;
                imap_disconnect_all(have_connectivity);
+               nntp_disconnect_all(have_connectivity);
                hooks_invoke(OFFLINE_SWITCH_HOOKLIST, NULL);
        } else {
                /*go online */