Fix #872: Geometry of Icon pane not being saved
[geeqie.git] / src / main.c
index fd3343e..ee4de76 100644 (file)
@@ -44,6 +44,7 @@
 #include "layout_util.h"
 #include "misc.h"
 #include "options.h"
+#include "rcfile.h"
 #include "remote.h"
 #include "secure_save.h"
 #include "similar.h"
 #include <X11/Xlib.h>
 #endif
 
+/**
+ * @page diagrams Diagrams
+ * @section options_overview Options Overview
+ * 
+ * #_ConfOptions  #_LayoutOptions
+ * 
+ * @startuml
+ * 
+ * object options.h
+ * object typedefs.h
+ * 
+ * options.h : ConfOptions
+ * options.h : \n
+ * options.h : Options applicable to **all** Layout Windows
+ * options.h : These are in the <global> section of geeqierc.xml
+ * options.h : Available to all modules via the global variable **options**
+ * typedefs.h : LayoutOptions
+ * typedefs.h : \n
+ * typedefs.h : Options applicable to **each** Layout Window
+ * typedefs.h : These are in the <layout> section of geeqierc.xml
+ * typedefs.h : There is one <layout> section for each Layout Window displayed
+ * typedefs.h : Available via **<layout_window>->options**
+ * 
+ * @enduml
+ */
+
+/**
+ * @page diagrams Diagrams
+ * @section options_diagrams_main Options - New Window From Main
+ * #main  
+ * #init_options  
+ * #layout_new_from_default  
+ * #load_config_from_file  
+ * #load_options  
+ * #setup_default_options
+ * 
+ * @startuml
+ * group main.c
+ * start
+ * group options.c
+ * : **init_options()**
+ * 
+ * Set **options** = ConfOptions from hard-coded init values;
+ * end group
+ * 
+ * group options.c
+ * : **setup_default_options()**
+ * 
+ * set hard-coded ConfOptions:
+ * 
+ * bookmarks:
+ * * dot dir
+ * * Home
+ * * Desktop
+ * * Collections
+ * safe delete path
+ * OSD template string
+ * sidecar extensions
+ * shell path and options
+ * marks tooltips
+ * help search engine;
+ * end group
+ * 
+ * if (first entry
+ * or
+ * --new-instance) then (yes)
+ * group options.c
+ * : **load_options()**
+ * ;
+ * 
+ * split
+ * : GQ_SYSTEM_WIDE_DIR
+ * /geeqierc.xml;
+ * split again
+ * : XDG_CONFIG_HOME
+ * /geeqierc.xml;
+ * split again
+ * : HOME
+ * /.geeqie/geeqierc.xml;
+ * end split
+ * 
+ * group rcfile.c
+ * : **load_config_from_file()**
+ * 
+ * set  **options** from file
+ * and all <layout window>->options  in file;
+ * end group
+ * 
+ * end group
+ * 
+ * if (broken config. file
+ * or no config file
+ * or no layout section loaded
+ * (i.e. session not saved)) then (yes)
+ * group layout.c
+ * : **layout_new_from_default()**;
+ * if (default.xml exists) then (yes)
+ * : Load user-saved
+ *  layout_window default options
+ *  from default.xml file;
+ * else (no)
+ * : Load hard-coded
+ *  layout_window default options;
+ * endif
+ * end group
+ * endif
+ * 
+ * else (no)
+ * : Send --new-window request to remote
+ *  No return to this point
+ *  This instance terminates;
+ * stop
+ * endif
+ * 
+ * : Enter gtk main loop;
+ * 
+ * end group
+ * @enduml
+ */
+
+/**
+ * @page diagrams Diagrams
+ * @section options_diagrams_remote Options - New Window From Remote
+ * #layout_new_from_default  
+ * @startuml
+ * 
+ * group remote.c
+ * start
+ * group layout.c
+ * : **layout_new_from_default()**;
+ * if (default.xml exists) then (yes)
+ * : Load user-saved
+ *  layout_window default options
+ *  from default.xml file;
+ * else (no)
+ * : Load hard-coded
+ *  layout_window default options;
+ * endif
+ * end group
+ * : set path from PWD;
+ * @enduml
+ */
+
+/**
+ * @page diagrams Diagrams
+ * @section options_diagrams_menu Options - New Window From Menu
+ * #layout_menu_new_window_cb  
+ * #layout_menu_window_from_current_cb  
+ * #layout_new_from_default  
+ * @startuml
+ * 
+ * group layout_util.c
+ * start
+ * 
+ * split
+ * : default;
+ * group layout.c
+ * : **layout_new_from_default()**;
+ * if (default.xml exists) then (yes)
+ * : Load user-saved
+ *  layout_window default options
+ *  from default.xml file;
+ * else (no)
+ * : Load hard-coded
+ *  layout_window default options;
+ * endif
+ * end group
+ * 
+ * split again
+ * : from current
+ * 
+ * **layout_menu_window_from_current_cb()**
+ * copy layout_window options
+ * from current window;
+ * 
+ * split again
+ * : named
+ * 
+ * **layout_menu_new_window_cb()**
+ * load layout_window options
+ * from saved xml file list;
+ * end split
+ * 
+ * end group
+ * @enduml
+ */
+  /**
+  * @file
+  * @ref options_overview Options Overview
+  */
+
+
 gboolean thumb_format_changed = FALSE;
 static RemoteConnection *remote_connection = NULL;
 
@@ -1112,8 +1305,8 @@ gint main(gint argc, gchar *argv[])
        /* handle missing config file and commandline additions*/
        if (!layout_window_list)
                {
-               /* broken or no config file */
-               layout_new_from_config(NULL, NULL, TRUE);
+               /* broken or no config file or no <layout> section */
+               layout_new_from_default();
                }
 
        layout_editors_reload_start();