2008-08-30 [colin] 3.5.0cvs85
[claws.git] / src / summaryview.c
index 9bccf58d503830b3275962b10700d556d6b81096..553c1fffe4378448243952af1084ca58cc432d75 100644 (file)
@@ -122,6 +122,8 @@ static GdkPixmap *keyxpm;
 static GdkBitmap *keyxpmmask;
 static GdkPixmap *clipkeyxpm;
 static GdkBitmap *clipkeyxpmmask;
+static GdkPixmap *keysignxpm;
+static GdkBitmap *keysignxpmmask;
 static GdkPixmap *gpgsignedxpm;
 static GdkBitmap *gpgsignedxpmmask;
 static GdkPixmap *clipgpgsignedxpm;
@@ -682,7 +684,7 @@ SummaryView *summary_create(void)
        summaryview = g_new0(SummaryView, 1);
 
 #if !(GTK_CHECK_VERSION(2,12,0))
-       summaryview->tips = tips;
+       summaryview->tooltips = tips;
 #endif
 #define SUMMARY_VBOX_SPACING 3
        vbox = gtk_vbox_new(FALSE, SUMMARY_VBOX_SPACING);
@@ -1101,6 +1103,8 @@ void summary_init(SummaryView *summaryview)
                         &watchthreadxpm, &watchthreadxpmmask);
        stock_pixmap_gdk(summaryview->ctree, STOCK_PIXMAP_CLIP_KEY,
                         &clipkeyxpm, &clipkeyxpmmask);
+       stock_pixmap_gdk(summaryview->ctree, STOCK_PIXMAP_KEY_SIGN,
+                        &keysignxpm, &keysignxpmmask);
        stock_pixmap_gdk(summaryview->ctree, STOCK_PIXMAP_KEY,
                         &keyxpm, &keyxpmmask);
        stock_pixmap_gdk(summaryview->ctree, STOCK_PIXMAP_GPG_SIGNED,
@@ -3870,8 +3874,13 @@ static void summary_set_row_marks(SummaryView *summaryview, GtkCMCTreeNode *row)
                gtk_cmctree_node_set_pixmap(ctree, row, col_pos[S_COL_MIME],
                                          clipgpgsignedxpm, clipgpgsignedxpmmask);
        } else if (MSG_IS_SIGNED(flags)) {
-               gtk_cmctree_node_set_pixmap(ctree, row, col_pos[S_COL_MIME],
-                                         gpgsignedxpm, gpgsignedxpmmask);
+               if (MSG_IS_ENCRYPTED(flags)) {
+                       gtk_cmctree_node_set_pixmap(ctree, row, col_pos[S_COL_MIME],
+                                         keysignxpm, keysignxpmmask);
+               } else {
+                       gtk_cmctree_node_set_pixmap(ctree, row, col_pos[S_COL_MIME],
+                                                 gpgsignedxpm, gpgsignedxpmmask);
+               }
        } else if (MSG_IS_WITH_ATTACHMENT(flags) && MSG_IS_ENCRYPTED(flags)) {
                gtk_cmctree_node_set_pixmap(ctree, row, col_pos[S_COL_MIME],
                                          clipkeyxpm, clipkeyxpmmask);
@@ -5731,6 +5740,7 @@ static void summary_colorlabel_menu_create(SummaryView *summaryview, gboolean re
        GtkWidget *menu;
        GtkWidget *item;
        gint i;
+       gchar *accel_path = NULL;
 
        label_menuitem = gtk_ui_manager_get_widget(gtkut_ui_manager(), "/Menus/SummaryViewPopup/ColorLabel");
        g_signal_connect(G_OBJECT(label_menuitem), "activate",
@@ -5740,6 +5750,9 @@ static void summary_colorlabel_menu_create(SummaryView *summaryview, gboolean re
 
        menu = gtk_menu_new();
 
+       gtk_menu_set_accel_group (GTK_MENU (menu), 
+               gtk_ui_manager_get_accel_group(mainwindow_get_mainwindow()->ui_manager));
+
        /* create sub items. for the menu item activation callback we pass the
         * index of label_colors[] as data parameter. for the None color we
         * pass an invalid (high) value. also we attach a data pointer so we
@@ -5753,6 +5766,11 @@ static void summary_colorlabel_menu_create(SummaryView *summaryview, gboolean re
        g_object_set_data(G_OBJECT(item), "summaryview", summaryview);
        gtk_widget_show(item);
 
+       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);
+
        item = gtk_menu_item_new();
        gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
        gtk_widget_show(item);
@@ -5768,6 +5786,11 @@ static void summary_colorlabel_menu_create(SummaryView *summaryview, gboolean re
                g_object_set_data(G_OBJECT(item), "summaryview",
                                  summaryview);
                gtk_widget_show(item);
+               accel_path = g_strdup_printf("<ClawsColorLabels>/%d", i);
+               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);
+               g_free(accel_path);
        }
 
        gtk_widget_show(menu);
@@ -5964,7 +5987,7 @@ static void summary_tags_menu_create(SummaryView *summaryview, gboolean refresh)
        g_object_set_data(G_OBJECT(item), "summaryview",
                          summaryview);
        gtk_widget_show(item);
-       accel_path = g_strconcat("<ClawsTags>/","Apply tags...", NULL);
+       accel_path = g_strdup_printf("<ClawsTags>/ApplyTags");
        gtk_menu_item_set_accel_path(GTK_MENU_ITEM(item), accel_path);
        g_free(accel_path);
 
@@ -6388,6 +6411,7 @@ static gboolean summary_button_pressed(GtkWidget *ctree, GdkEventButton *event,
        if (event->button == 3) {
                summaryview->display_msg = messageview_is_visible(summaryview->messageview);
                /* right clicked */
+               cm_menu_set_sensitive("SummaryViewPopup/Trash", !folder_has_parent_of_type(summaryview->folder_item, F_TRASH));
                gtk_menu_popup(GTK_MENU(summaryview->popupmenu), NULL, NULL,
                               NULL, NULL, event->button, event->time);
        } else if (event->button == 2) {
@@ -6445,8 +6469,10 @@ static gboolean summary_key_pressed(GtkWidget *widget, GdkEventKey *event,
                switch (event->keyval) {
                case GDK_space:         /* Page down or go to the next */
                        handled = TRUE;
-                       if (event->state & GDK_CONTROL_MASK) 
-                               event->state &= ~GDK_CONTROL_MASK;
+                       if (event->state & GDK_CONTROL_MASK) {
+                               handled = FALSE;
+                               break;
+                       }
                        if (event->state & GDK_SHIFT_MASK) 
                                mimeview_scroll_page(messageview->mimeview, TRUE);
                        else {
@@ -7497,6 +7523,7 @@ void summary_reflect_prefs_pixmap_theme(SummaryView *summaryview)
        stock_pixmap_gdk(ctree, STOCK_PIXMAP_WATCHTHREAD, &watchthreadxpm, &watchthreadxpmmask);
        stock_pixmap_gdk(ctree, STOCK_PIXMAP_CLIP_KEY, &clipkeyxpm, &clipkeyxpmmask);
        stock_pixmap_gdk(ctree, STOCK_PIXMAP_KEY, &keyxpm, &keyxpmmask);
+       stock_pixmap_gdk(ctree, STOCK_PIXMAP_KEY_SIGN, &keysignxpm, &keysignxpmmask);
        stock_pixmap_gdk(ctree, STOCK_PIXMAP_GPG_SIGNED, &gpgsignedxpm, &gpgsignedxpmmask);
        stock_pixmap_gdk(ctree, STOCK_PIXMAP_CLIP_GPG_SIGNED, &clipgpgsignedxpm, &clipgpgsignedxpmmask);
        stock_pixmap_gdk(ctree, STOCK_PIXMAP_SPAM, &spamxpm, &spamxpmmask);
@@ -7657,7 +7684,7 @@ void summary_update_unread(SummaryView *summaryview, FolderItem *removed_item)
        guint replied, forwarded, locked, ignored, watched;
        static gboolean tips_initialized = FALSE;
 #if !(GTK_CHECK_VERSION(2,12,0))
-       GtkTooltips *tips = summaryview->tips;
+       GtkTooltips *tips = summaryview->tooltips;
 #endif
 
        if (prefs_common.layout_mode != SMALL_LAYOUT) {