aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2011-02-04 08:23:45 +0000
committerhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2011-02-04 08:23:45 +0000
commitaa3aa8a2f9adc0056106e28e2f535a5cfa669f9c (patch)
tree4bd2d85cf9051c6fa3d1fe232048e0ee4d206fb4 /src
parent2c555bc7f2cb09010a7ee0e6bf9bb32355b2a4d8 (diff)
save the columns width of address book.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@2840 ee746299-78ed-0310-b773-934348b2243d
Diffstat (limited to 'src')
-rw-r--r--src/addressbook.c66
1 files changed, 61 insertions, 5 deletions
diff --git a/src/addressbook.c b/src/addressbook.c
index bfe119af..67d50c33 100644
--- a/src/addressbook.c
+++ b/src/addressbook.c
@@ -1,6 +1,6 @@
/*
* Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999-2010 Hiroyuki Yamamoto
+ * Copyright (C) 1999-2011 Hiroyuki Yamamoto
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -227,6 +227,13 @@ static void addressbook_drag_received (GtkWidget *widget,
guint time,
gpointer user_data);
+static void addressbook_folder_resized (GtkWidget *widget,
+ GtkAllocation *allocation,
+ gpointer data);
+static void addressbook_col_resized (GtkWidget *widget,
+ GtkAllocation *allocation,
+ gpointer data);
+
static void addressbook_popup_close (GtkMenuShell *menu_shell,
gpointer data);
@@ -646,7 +653,7 @@ static void addressbook_create(void)
GTK_POLICY_AUTOMATIC);
gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(tree_swin),
GTK_SHADOW_IN);
- gtk_widget_set_size_request(tree_swin, COL_FOLDER_WIDTH + 40, -1);
+ gtk_widget_set_size_request(tree_swin, prefs_common.addressbook_folder_width, -1);
/* Address index */
tree_store = gtk_tree_store_new(N_TREE_COLS, G_TYPE_STRING,
@@ -672,7 +679,6 @@ static void addressbook_create(void)
column = gtk_tree_view_column_new();
gtk_tree_view_column_set_spacing(column, 1);
gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_FIXED);
- gtk_tree_view_column_set_fixed_width(column, COL_FOLDER_WIDTH);
gtk_tree_view_column_set_resizable(column, TRUE);
renderer = gtk_cell_renderer_pixbuf_new();
@@ -701,6 +707,9 @@ static void addressbook_create(void)
COL_FOLDER_NAME,
GTK_SORT_ASCENDING);
+ g_signal_connect(G_OBJECT(tree_swin), "size-allocate",
+ G_CALLBACK(addressbook_folder_resized), NULL);
+
g_signal_connect(G_OBJECT(selection), "changed",
G_CALLBACK(addressbook_tree_selection_changed), NULL);
g_signal_connect(G_OBJECT(treeview), "button_press_event",
@@ -761,7 +770,8 @@ static void addressbook_create(void)
column = gtk_tree_view_column_new();
gtk_tree_view_column_set_spacing(column, 1);
gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_FIXED);
- gtk_tree_view_column_set_fixed_width(column, COL_NAME_WIDTH);
+ gtk_tree_view_column_set_fixed_width
+ (column, prefs_common.addressbook_col_name);
gtk_tree_view_column_set_resizable(column, TRUE);
gtk_tree_view_column_set_title(column, _("Name"));
@@ -784,6 +794,9 @@ static void addressbook_create(void)
gtk_tree_view_column_set_sort_column_id(column, COL_NAME);
gtk_tree_view_append_column(GTK_TREE_VIEW(listview), column);
gtk_tree_view_set_expander_column(GTK_TREE_VIEW(listview), column);
+ g_signal_connect(G_OBJECT(column->button), "size-allocate",
+ G_CALLBACK(addressbook_col_resized),
+ GINT_TO_POINTER(COL_NAME));
renderer = gtk_cell_renderer_text_new();
g_object_set(renderer,
@@ -794,10 +807,14 @@ static void addressbook_create(void)
column = gtk_tree_view_column_new_with_attributes
(_("E-Mail address"), renderer, "text", COL_ADDRESS, NULL);
gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_FIXED);
- gtk_tree_view_column_set_fixed_width(column, COL_ADDRESS_WIDTH);
+ gtk_tree_view_column_set_fixed_width
+ (column, prefs_common.addressbook_col_addr);
gtk_tree_view_column_set_resizable(column, TRUE);
gtk_tree_view_column_set_sort_column_id(column, COL_ADDRESS);
gtk_tree_view_append_column(GTK_TREE_VIEW(listview), column);
+ g_signal_connect(G_OBJECT(column->button), "size-allocate",
+ G_CALLBACK(addressbook_col_resized),
+ GINT_TO_POINTER(COL_ADDRESS));
renderer = gtk_cell_renderer_text_new();
g_object_set(renderer,
@@ -811,6 +828,9 @@ static void addressbook_create(void)
gtk_tree_view_column_set_resizable(column, TRUE);
gtk_tree_view_column_set_sort_column_id(column, COL_REMARKS);
gtk_tree_view_append_column(GTK_TREE_VIEW(listview), column);
+ g_signal_connect(G_OBJECT(column->button), "size-allocate",
+ G_CALLBACK(addressbook_col_resized),
+ GINT_TO_POINTER(COL_REMARKS));
gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(list_store),
COL_NAME, GTK_SORT_ASCENDING);
@@ -1969,6 +1989,42 @@ static void addressbook_drag_received(GtkWidget *widget,
addressbook_modified();
}
+static void addressbook_folder_resized(GtkWidget *widget,
+ GtkAllocation *allocation,
+ gpointer data)
+{
+ gint width = allocation->width;
+
+ if (width < 8)
+ return;
+
+ prefs_common.addressbook_folder_width = width;
+}
+
+static void addressbook_col_resized(GtkWidget *widget,
+ GtkAllocation *allocation, gpointer data)
+{
+ AddressBookListColumnPos type = (gint)data;
+ gint width = allocation->width;
+
+ if (width < 8)
+ return;
+
+ switch (type) {
+ case COL_NAME:
+ prefs_common.addressbook_col_name = width;
+ break;
+ case COL_ADDRESS:
+ prefs_common.addressbook_col_addr = width;
+ break;
+ case COL_REMARKS:
+ prefs_common.addressbook_col_rem = width;
+ break;
+ default:
+ break;
+ }
+}
+
static void addressbook_popup_close(GtkMenuShell *menu_shell, gpointer data)
{
GtkTreeView *treeview = GTK_TREE_VIEW(addrbook.treeview);