#include "prefs_filtering.h"
#include "prefs_account.h"
#include "prefs_summary_column.h"
+#include "prefs_folder_column.h"
#include "prefs_template.h"
#include "action.h"
#include "account.h"
guint action,
GtkWidget *widget);
-static void set_display_item_cb (MainWindow *mainwin,
+static void set_summary_display_item_cb (MainWindow *mainwin,
+ guint action,
+ GtkWidget *widget);
+static void set_folder_display_item_cb (MainWindow *mainwin,
guint action,
GtkWidget *widget);
static void sort_summary_cb (MainWindow *mainwin,
{N_("/_View/E_xpand all threads"), NULL, expand_threads_cb, 0, NULL},
{N_("/_View/Co_llapse all threads"), NULL, collapse_threads_cb, 0, NULL},
{N_("/_View/_Hide read messages"), NULL, hide_read_messages, 0, "<ToggleItem>"},
- {N_("/_View/Set displayed _items..."), NULL, set_display_item_cb, 0, NULL},
+ {N_("/_View/Set displayed _columns"), NULL, NULL, 0, "<Branch>"},
+ {N_("/_View/Set displayed _columns/in _Folder list..."), NULL, set_folder_display_item_cb, 0, NULL},
+ {N_("/_View/Set displayed _columns/in _Message list..."),NULL, set_summary_display_item_cb, 0, NULL},
{N_("/_View/---"), NULL, NULL, 0, "<Separator>"},
{N_("/_View/_Go to"), NULL, NULL, 0, "<Branch>"},
GtkWidget *menuitem;
gint i;
guint n_menu_entries;
- gboolean hide_messageview = FALSE;
static GdkGeometry geometry;
menu_set_sensitive(ifactory, "/Help/Manual (Local)", manual_available(MANUAL_MANUAL_LOCAL));
menu_set_sensitive(ifactory, "/Help/FAQ (Local)", manual_available(MANUAL_FAQ_LOCAL));
- handlebox = gtk_handle_box_new();
- gtk_widget_show(handlebox);
- gtk_box_pack_start(GTK_BOX(vbox), handlebox, FALSE, FALSE, 0);
- g_signal_connect(G_OBJECT(handlebox), "child_attached",
- G_CALLBACK(toolbar_child_attached), mainwin);
- g_signal_connect(G_OBJECT(handlebox), "child_detached",
- G_CALLBACK(toolbar_child_detached), mainwin);
-
+ if (prefs_common.toolbar_detachable) {
+ handlebox = gtk_handle_box_new();
+ gtk_widget_show(handlebox);
+ gtk_box_pack_start(GTK_BOX(vbox), handlebox, FALSE, FALSE, 0);
+ g_signal_connect(G_OBJECT(handlebox), "child_attached",
+ G_CALLBACK(toolbar_child_attached), mainwin);
+ g_signal_connect(G_OBJECT(handlebox), "child_detached",
+ G_CALLBACK(toolbar_child_detached), mainwin);
+ } else {
+ handlebox = gtk_hbox_new(FALSE, 0);
+ gtk_widget_show(handlebox);
+ gtk_box_pack_start(GTK_BOX(vbox), handlebox, FALSE, FALSE, 0);
+ }
/* link window to mainwin->window to avoid gdk warnings */
mainwin->window = window;
debug_print("done.\n");
messageview->visible = prefs_common.msgview_visible;
- hide_messageview = !messageview->visible;
-
+
main_window_set_widgets(mainwin, type);
g_signal_connect(G_OBJECT(window), "size_allocate",
if (prefs_common.work_offline)
online_switch_clicked (GTK_BUTTON(online_switch), mainwin);
- if (mainwin->type == SEPARATE_NONE && hide_messageview)
- main_window_toggle_message_view(mainwin);
-
return mainwin;
}
mainwin->menu_lock_count--;
}
+static guint prefs_tag = 0;
+
void main_window_reflect_prefs_all(void)
{
main_window_reflect_prefs_all_real(FALSE);
}
-void main_window_reflect_prefs_all_real(gboolean pixmap_theme_changed)
+static gboolean reflect_prefs_timeout_cb(gpointer data)
{
+ gboolean pixmap_theme_changed = GPOINTER_TO_INT(data);
GList *cur;
MainWindow *mainwin;
GtkWidget *pixmap;
prefs_common.display_header_pane);
textview_reflect_prefs(mainwin->messageview->mimeview->textview);
-
+ folderview_reflect_prefs();
+ summary_reflect_prefs();
summary_redisplay_msg(mainwin->summaryview);
}
+ prefs_tag = 0;
+ return FALSE;
+}
+
+void main_window_reflect_prefs_all_real(gboolean pixmap_theme_changed)
+{
+ if (prefs_tag == 0 || pixmap_theme_changed) {
+ prefs_tag = g_timeout_add(500, reflect_prefs_timeout_cb,
+ GINT_TO_POINTER(pixmap_theme_changed));
+ }
}
void main_window_set_summary_column(void)
}
}
+void main_window_set_folder_column(void)
+{
+ GList *cur;
+ MainWindow *mainwin;
+
+ for (cur = mainwin_list; cur != NULL; cur = cur->next) {
+ mainwin = (MainWindow *)cur->data;
+ folderview_set_column_order(mainwin->folderview);
+ }
+}
+
static void main_window_set_account_selector_menu(MainWindow *mainwin,
GList *account_list)
{
folder = FOLDER(list->data);
if (folder && folder->trash && folder->trash->total_msgs > 0)
has_trash++;
+ if (folder->account && folder->account->set_trash_folder &&
+ folder_find_item_from_identifier(folder->account->trash_folder))
+ has_trash++;
}
if (!has_trash) return;
if (confirm) {
if (alertpanel(_("Empty trash"),
- _("Empty all messages in trash?"),
+ _("Delete all messages in trash folders?"),
GTK_STOCK_YES, GTK_STOCK_NO, NULL)
!= G_ALERTDEFAULT)
return;
state |= M_NOT_NEWS;
if (selection == SUMMARY_SELECTED_SINGLE &&
(item &&
- (item->stype == F_OUTBOX || item->stype == F_DRAFT ||
- item->stype == F_QUEUE)))
+ (folder_has_parent_of_type(item, F_DRAFT) ||
+ folder_has_parent_of_type(item, F_OUTBOX) ||
+ folder_has_parent_of_type(item, F_QUEUE))))
state |= M_ALLOW_REEDIT;
if (cur_account)
state |= M_HAVE_ACCOUNT;
summary_collapse_threads(mainwin->summaryview);
}
-static void set_display_item_cb(MainWindow *mainwin, guint action,
+static void set_summary_display_item_cb(MainWindow *mainwin, guint action,
GtkWidget *widget)
{
prefs_summary_column_open();
}
+static void set_folder_display_item_cb(MainWindow *mainwin, guint action,
+ GtkWidget *widget)
+{
+ prefs_folder_column_open();
+}
+
static void sort_summary_cb(MainWindow *mainwin, guint action,
GtkWidget *widget)
{
static void account_selector_menu_cb(GtkMenuItem *menuitem, gpointer data)
{
cur_account = (PrefsAccount *)data;
- main_window_reflect_prefs_all();
+ FolderItem *item = NULL;
+
+ if (!mainwindow_get_mainwindow())
+ return;
+ main_window_show_cur_account(mainwindow_get_mainwindow());
+ toolbar_update(TOOLBAR_MAIN, mainwindow_get_mainwindow());
+ main_window_set_menu_sensitive(mainwindow_get_mainwindow());
+ toolbar_main_set_sensitive(mainwindow_get_mainwindow());
+
+ item = folderview_get_selected_item(
+ mainwindow_get_mainwindow()->folderview);
+ if (item) {
+ toolbar_set_compose_button
+ (mainwindow_get_mainwindow()->toolbar,
+ FOLDER_TYPE(item->folder) == F_NEWS ?
+ COMPOSEBUTTON_NEWS : COMPOSEBUTTON_MAIL);
+ }
}
static void account_receive_menu_cb(GtkMenuItem *menuitem, gpointer data)