Remember keywords layout
[geeqie.git] / src / rcfile.c
index 5da858a..52aa2b9 100644 (file)
@@ -358,6 +358,7 @@ static void write_global_attributes(GString *outstr, gint indent)
        WRITE_NL(); WRITE_INT(*options, image.max_window_size);
        WRITE_NL(); WRITE_BOOL(*options, image.limit_autofit_size);
        WRITE_NL(); WRITE_INT(*options, image.max_autofit_size);
+       WRITE_NL(); WRITE_INT(*options, image.max_enlargement_size);
        WRITE_NL(); WRITE_UINT(*options, image.scroll_reset_method);
        WRITE_NL(); WRITE_INT(*options, image.tile_cache_max);
        WRITE_NL(); WRITE_INT(*options, image.image_cache_max);
@@ -632,6 +633,7 @@ static gboolean load_global_params(const gchar **attribute_names, const gchar **
                if (READ_INT(*options, image.max_window_size)) continue;
                if (READ_BOOL(*options, image.limit_autofit_size)) continue;
                if (READ_INT(*options, image.max_autofit_size)) continue;
+               if (READ_INT(*options, image.max_enlargement_size)) continue;
                if (READ_UINT_CLAMP(*options, image.scroll_reset_method, 0, PR_SCROLL_RESET_COUNT - 1)) continue;
                if (READ_INT(*options, image.tile_cache_max)) continue;
                if (READ_INT(*options, image.image_cache_max)) continue;
@@ -946,6 +948,22 @@ static void options_parse_pane_exif(GQParserData *parser_data, GMarkupParseConte
                }
 }
 
+static void options_parse_pane_keywords(GQParserData *parser_data, GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer data, GError **error)
+{
+       GtkWidget *pane = data;
+
+       if (g_ascii_strcasecmp(element_name, "expanded") == 0)
+               {
+               bar_pane_keywords_entry_add_from_config(pane, attribute_names, attribute_values);
+               options_parse_func_push(parser_data, options_parse_leaf, NULL, NULL);
+               }
+       else
+               {
+               log_printf("unexpected in <pane_keywords>: <%s>\n", element_name);
+               options_parse_func_push(parser_data, options_parse_leaf, NULL, NULL);
+               }
+}
+
 static void options_parse_bar(GQParserData *parser_data, GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer data, GError **error)
 {
        GtkWidget *bar = data;
@@ -1021,7 +1039,7 @@ static void options_parse_bar(GQParserData *parser_data, GMarkupParseContext *co
                        pane = bar_pane_keywords_new_from_config(attribute_names, attribute_values);
                        bar_add(bar, pane);
                        }
-               options_parse_func_push(parser_data, options_parse_leaf, NULL, NULL);
+               options_parse_func_push(parser_data, options_parse_pane_keywords, NULL, pane);
                }
        else if (g_ascii_strcasecmp(element_name, "clear") == 0)
                {
@@ -1061,12 +1079,17 @@ static void options_parse_layout(GQParserData *parser_data, GMarkupParseContext
 
                options_parse_func_push(parser_data, options_parse_bar, NULL, lw->bar);
                }
+#if 0
+/* FIXME: The sort manager and desktop files are set up in the idle loop.
+ * Setup is not yet completed when the layout is first displayed.
+ */
        else if (g_ascii_strcasecmp(element_name, "bar_sort") == 0)
                {
                GtkWidget *bar = bar_sort_new_from_config(lw, attribute_names, attribute_values);
                layout_bar_sort_set(lw, bar);
                options_parse_func_push(parser_data, options_parse_leaf, NULL, NULL);
                }
+#endif
        else if (g_ascii_strcasecmp(element_name, "toolbar") == 0)
                {
                options_parse_func_push(parser_data, options_parse_toolbar_and_statusbar, NULL, NULL);