diff options
author | Jeffrey Stedfast <fejj@ximian.com> | 2004-04-01 01:00:24 +0800 |
---|---|---|
committer | Jeffrey Stedfast <fejj@src.gnome.org> | 2004-04-01 01:00:24 +0800 |
commit | 2ab629886e8850257ffe7681fcfdf73648278b4b (patch) | |
tree | 54a1145024182b7373b42f69a9e4d183ac0447ad | |
parent | 786d09b39b0ab9c9e79b7f81a22c8784abf9559d (diff) | |
download | gsoc2013-evolution-2ab629886e8850257ffe7681fcfdf73648278b4b.tar.gz gsoc2013-evolution-2ab629886e8850257ffe7681fcfdf73648278b4b.tar.zst gsoc2013-evolution-2ab629886e8850257ffe7681fcfdf73648278b4b.zip |
Save/restore the subscribe dialog's window size. Fixes bug #56230.
2004-03-31 Jeffrey Stedfast <fejj@ximian.com>
* em-subscribe-editor.c (em_subscribe_editor_new): Save/restore
the subscribe dialog's window size. Fixes bug #56230.
svn path=/trunk/; revision=25266
-rw-r--r-- | mail/ChangeLog | 5 | ||||
-rw-r--r-- | mail/em-subscribe-editor.c | 52 | ||||
-rw-r--r-- | mail/evolution-mail.schemas.in.in | 26 | ||||
-rw-r--r-- | mail/subscribe-dialog.glade | 4 |
4 files changed, 82 insertions, 5 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog index 30031c0ccd..81a63cccc9 100644 --- a/mail/ChangeLog +++ b/mail/ChangeLog @@ -1,3 +1,8 @@ +2004-03-31 Jeffrey Stedfast <fejj@ximian.com> + + * em-subscribe-editor.c (em_subscribe_editor_new): Save/restore + the subscribe dialog's window size. Fixes bug #56230. + 2004-03-31 Not Zed <NotZed@Ximian.com> * mail.h: REMOVED! And there was much rejoicing. diff --git a/mail/em-subscribe-editor.c b/mail/em-subscribe-editor.c index fa7b1bec07..f975e02c59 100644 --- a/mail/em-subscribe-editor.c +++ b/mail/em-subscribe-editor.c @@ -795,6 +795,27 @@ static void sub_editor_busy(EMSubscribeEditor *se, int dir) } } + +#define DEFAULT_WIDTH 600 +#define DEFAULT_HEIGHT 400 + +static GtkAllocation window_size = { 0, 0, 0, 0 }; + +static void +window_size_allocate (GtkWidget *widget, GtkAllocation *allocation) +{ + GConfClient *gconf; + + /* save to in-memory variable for current session access */ + window_size = *allocation; + + /* save the setting across sessions */ + gconf = gconf_client_get_default (); + gconf_client_set_int (gconf, "/apps/evolution/mail/subscribe_window/width", window_size.width, NULL); + gconf_client_set_int (gconf, "/apps/evolution/mail/subscribe_window/height", window_size.height, NULL); + g_object_unref (gconf); +} + GtkDialog *em_subscribe_editor_new(void) { EMSubscribeEditor *se; @@ -813,7 +834,7 @@ GtkDialog *em_subscribe_editor_new(void) } se->dialog = (GtkDialog *)glade_xml_get_widget (xml, "subscribe_dialog"); g_signal_connect(se->dialog, "destroy", G_CALLBACK(sub_editor_destroy), se); - + gtk_widget_realize ((GtkWidget *)se->dialog); gtk_container_set_border_width ((GtkContainer *) ((GtkDialog *)se->dialog)->action_area, 12); gtk_container_set_border_width ((GtkContainer *) ((GtkDialog *)se->dialog)->vbox, 0); @@ -872,8 +893,31 @@ GtkDialog *em_subscribe_editor_new(void) gtk_option_menu_set_menu((GtkOptionMenu *)se->optionmenu, menu); g_signal_connect(se->optionmenu, "changed", G_CALLBACK(sub_editor_menu_changed), se); - - gtk_window_set_default_size((GtkWindow *)se->dialog, 350, 400); - + + if (window_size.width == 0) { + /* initialize @window_size with the previous session's size */ + GConfClient *gconf; + GError *err = NULL; + + gconf = gconf_client_get_default (); + + window_size.width = gconf_client_get_int (gconf, "/apps/evolution/mail/subscribe_window/width", &err); + if (err != NULL) { + window_size.width = DEFAULT_WIDTH; + g_clear_error (&err); + } + + window_size.height = gconf_client_get_int (gconf, "/apps/evolution/mail/subscribe_window/height", &err); + if (err != NULL) { + window_size.height = DEFAULT_HEIGHT; + g_clear_error (&err); + } + + g_object_unref (gconf); + } + + gtk_window_set_default_size ((GtkWindow *) se->dialog, window_size.width, window_size.height); + g_signal_connect (se->dialog, "size-allocate", G_CALLBACK (window_size_allocate), NULL); + return se->dialog; } diff --git a/mail/evolution-mail.schemas.in.in b/mail/evolution-mail.schemas.in.in index e3040bd930..69fb8424a8 100644 --- a/mail/evolution-mail.schemas.in.in +++ b/mail/evolution-mail.schemas.in.in @@ -472,6 +472,32 @@ </locale> </schema> + <!-- Subscribe dialog --> + + <schema> + <key>/schemas/apps/evolution/mail/subscribe_window/width</key> + <applyto>/apps/evolution/mail/subscribe_window/width</applyto> + <owner>evolution-mail</owner> + <type>int</type> + <default>600</default> + <locale name="C"> + <short>Subscribe dialog default width</short> + <long>Default width of the Subscribe dialog</long> + </locale> + </schema> + + <schema> + <key>/schemas/apps/evolution/mail/subscribe_window/height</key> + <applyto>/apps/evolution/mail/subscribe_window/height</applyto> + <owner>evolution-mail</owner> + <type>int</type> + <default>400</default> + <locale name="C"> + <short>Subscribe dialog default hight</short> + <long>Default height of the Subscribe dialog</long> + </locale> + </schema> + <!-- Filter logging --> <schema> diff --git a/mail/subscribe-dialog.glade b/mail/subscribe-dialog.glade index 95ee676ae0..6f8238efa4 100644 --- a/mail/subscribe-dialog.glade +++ b/mail/subscribe-dialog.glade @@ -2,13 +2,15 @@ <!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd"> <glade-interface> +<requires lib="gnome"/> <widget class="GtkDialog" id="subscribe_dialog"> - <property name="visible">True</property> <property name="title" translatable="yes">Folder Subscriptions</property> <property name="type">GTK_WINDOW_TOPLEVEL</property> <property name="window_position">GTK_WIN_POS_NONE</property> <property name="modal">False</property> + <property name="default_width">600</property> + <property name="default_height">400</property> <property name="resizable">True</property> <property name="destroy_with_parent">False</property> <property name="has_separator">False</property> |