commit c7456ba3ad1a55c8806054927d4b6af94d383e32
parent b05b0ed4257b1fd1af2722909eef8fb4b5490d80
Author: Paweł Pękala <c0rn@gazeta.pl>
Date: Mon, 22 Mar 2010 21:52:15 +0000
2010-03-22 [pawel] 3.7.5cvs36
* src/grouplistdialog.c
* src/prefs_common.c
* src/prefs_common.h
- remember newsgroups list dialog size
- respect use_dotted_lines hidden pref
- respect use_stripes_everywhere hidden pref
Diffstat:
6 files changed, 57 insertions(+), 12 deletions(-)
diff --git a/ChangeLog b/ChangeLog
@@ -1,3 +1,12 @@
+2010-03-22 [pawel] 3.7.5cvs36
+
+ * src/grouplistdialog.c
+ * src/prefs_common.c
+ * src/prefs_common.h
+ - remember newsgroups list dialog size
+ - respect use_dotted_lines hidden pref
+ - respect use_stripes_everywhere hidden pref
+
2010-03-21 [pawel] 3.7.5cvs35
* src/addrgather.c
diff --git a/PATCHSETS b/PATCHSETS
@@ -3976,3 +3976,4 @@
( cvs diff -u -r 1.5.2.29 -r 1.5.2.30 po/zh_CN.po; ) > 3.7.5cvs33.patchset
( cvs diff -u -r 1.115.2.225 -r 1.115.2.226 src/main.c; cvs diff -u -r 1.1.2.89 -r 1.1.2.90 src/gtk/quicksearch.c; cvs diff -u -r 1.1.2.18 -r 1.1.2.19 src/gtk/quicksearch.h; ) > 3.7.5cvs34.patchset
( cvs diff -u -r 1.5.10.30 -r 1.5.10.31 src/addrgather.c; cvs diff -u -r 1.83.2.160 -r 1.83.2.161 src/mimeview.c; cvs diff -u -r 1.36.2.183 -r 1.36.2.184 src/common/utils.c; ) > 3.7.5cvs35.patchset
+( cvs diff -u -r 1.14.2.24 -r 1.14.2.25 src/grouplistdialog.c; cvs diff -u -r 1.204.2.194 -r 1.204.2.195 src/prefs_common.c; cvs diff -u -r 1.103.2.127 -r 1.103.2.128 src/prefs_common.h; ) > 3.7.5cvs36.patchset
diff --git a/configure.ac b/configure.ac
@@ -12,7 +12,7 @@ MINOR_VERSION=7
MICRO_VERSION=5
INTERFACE_AGE=0
BINARY_AGE=0
-EXTRA_VERSION=35
+EXTRA_VERSION=36
EXTRA_RELEASE=
EXTRA_GTK2_VERSION=
diff --git a/src/grouplistdialog.c b/src/grouplistdialog.c
@@ -39,6 +39,7 @@
#include "alertpanel.h"
#include "recv.h"
#include "socket.h"
+#include "prefs_common.h"
#define GROUPLIST_DIALOG_WIDTH 450
#define GROUPLIST_DIALOG_HEIGHT 400
@@ -66,6 +67,8 @@ static gboolean grouplist_recv_func (SockInfo *sock,
gint count,
gint read_bytes,
gpointer data);
+static void grouplist_size_allocate (GtkWidget *widget,
+ GtkAllocation *allocation);
static gint window_deleted (GtkWidget *widget,
GdkEventAny *event,
@@ -146,14 +149,12 @@ static void grouplist_dialog_create(void)
GtkWidget *cancel_button;
GtkWidget *refresh_button;
GtkWidget *scrolledwin;
+ static GdkGeometry geometry;
gchar *titles[3];
gint i;
dialog = gtk_dialog_new();
gtk_window_set_resizable(GTK_WINDOW(dialog), TRUE);
- gtk_widget_set_size_request(dialog,
- GROUPLIST_DIALOG_WIDTH,
- GROUPLIST_DIALOG_HEIGHT);
gtk_container_set_border_width
(GTK_CONTAINER(GTK_DIALOG(dialog)->action_area), 5);
gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_CENTER);
@@ -162,10 +163,10 @@ static void grouplist_dialog_create(void)
G_CALLBACK(window_deleted), NULL);
g_signal_connect(G_OBJECT(dialog), "key_press_event",
G_CALLBACK(key_pressed), NULL);
+ g_signal_connect(G_OBJECT(dialog), "size_allocate",
+ G_CALLBACK(grouplist_size_allocate), NULL);
MANAGE_WINDOW_SIGNALS_CONNECT(dialog);
- gtk_widget_realize(dialog);
-
vbox = gtk_vbox_new(FALSE, 8);
gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), vbox);
gtk_container_set_border_width(GTK_CONTAINER(vbox), 8);
@@ -196,21 +197,29 @@ static void grouplist_dialog_create(void)
scrolledwin = gtk_scrolled_window_new(NULL, NULL);
gtk_box_pack_start(GTK_BOX (vbox), scrolledwin, TRUE, TRUE, 0);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW (scrolledwin),
- GTK_POLICY_ALWAYS,
- GTK_POLICY_ALWAYS);
+ GTK_POLICY_AUTOMATIC,
+ GTK_POLICY_AUTOMATIC);
titles[0] = _("Newsgroup name");
titles[1] = _("Messages");
titles[2] = _("Type");
- ctree = gtk_cmctree_new_with_titles(3, 0, titles);
+ ctree = gtk_sctree_new_with_titles(3, 0, titles);
gtk_container_add(GTK_CONTAINER(scrolledwin), ctree);
gtk_cmclist_set_column_width
(GTK_CMCLIST(ctree), 0, GROUPLIST_COL_NAME_WIDTH);
gtk_cmclist_set_column_auto_resize(GTK_CMCLIST(ctree), 0, TRUE);
gtk_cmclist_set_selection_mode(GTK_CMCLIST(ctree), GTK_SELECTION_MULTIPLE);
- gtk_cmctree_set_line_style(GTK_CMCTREE(ctree), GTK_CMCTREE_LINES_DOTTED);
- gtk_cmctree_set_expander_style(GTK_CMCTREE(ctree),
- GTK_CMCTREE_EXPANDER_SQUARE);
+
+ if (prefs_common.enable_dotted_lines) {
+ gtk_cmctree_set_line_style(GTK_CMCTREE(ctree), GTK_CMCTREE_LINES_DOTTED);
+ gtk_cmctree_set_expander_style(GTK_CMCTREE(ctree),
+ GTK_CMCTREE_EXPANDER_SQUARE);
+ } else {
+ gtk_cmctree_set_line_style(GTK_CMCTREE(ctree), GTK_CMCTREE_LINES_NONE);
+ gtk_cmctree_set_expander_style(GTK_CMCTREE(ctree),
+ GTK_CMCTREE_EXPANDER_TRIANGLE);
+ }
+
for (i = 0; i < 3; i++)
GTK_WIDGET_UNSET_FLAGS(GTK_CMCLIST(ctree)->column[i].button,
GTK_CAN_FOCUS);
@@ -238,6 +247,17 @@ static void grouplist_dialog_create(void)
g_signal_connect(G_OBJECT(refresh_button), "clicked",
G_CALLBACK(refresh_clicked), NULL);
+ if (!geometry.min_width) {
+ geometry.min_width = GROUPLIST_DIALOG_WIDTH;
+ geometry.min_height = GROUPLIST_DIALOG_HEIGHT;
+ }
+
+ gtk_window_set_geometry_hints(GTK_WINDOW(dialog), NULL, &geometry,
+ GDK_HINT_MIN_SIZE);
+ gtk_window_set_default_size(GTK_WINDOW(dialog),
+ prefs_common.news_subscribe_width,
+ prefs_common.news_subscribe_height);
+
gtk_widget_show_all(GTK_DIALOG(dialog)->vbox);
}
@@ -483,6 +503,14 @@ static gboolean grouplist_recv_func(SockInfo *sock, gint count, gint read_bytes,
return TRUE;
}
+static void grouplist_size_allocate(GtkWidget *widget, GtkAllocation *allocation)
+{
+ cm_return_if_fail( allocation != NULL );
+
+ prefs_common.news_subscribe_width = allocation->width;
+ prefs_common.news_subscribe_height = allocation->height;
+}
+
static gint window_deleted(GtkWidget *widget, GdkEventAny *event, gpointer data)
{
ack = FALSE;
diff --git a/src/prefs_common.c b/src/prefs_common.c
@@ -1033,6 +1033,11 @@ static PrefParam param[] = {
{"addrgather_height", "-1", &prefs_common.addrgather_height, P_INT,
NULL, NULL, NULL},
+ {"news_subscribe_width", "450", &prefs_common.news_subscribe_width, P_INT,
+ NULL, NULL, NULL},
+ {"news_subscribe_height", "400", &prefs_common.news_subscribe_height, P_INT,
+ NULL, NULL, NULL},
+
/* Hidden */
{"warn_dnd", "1", &prefs_common.warn_dnd, P_INT,
NULL, NULL, NULL},
diff --git a/src/prefs_common.h b/src/prefs_common.h
@@ -470,6 +470,8 @@ struct _PrefsCommon
gint aboutwin_height;
gint addrgather_width;
gint addrgather_height;
+ gint news_subscribe_width;
+ gint news_subscribe_height;
gint warn_dnd;
gint broken_are_utf8;