annotate src/main.c @ 2221:59b559f747a7 ke-lua

Merge branch 'master' into ke-lua * master: (185 commits) better fix for big-endian architectures Minor indentation fixes. Cleanup checker shader code. Fix exif orientation in clutter rendering mode. Silent 2 warnings using explicit type casting. Polish translation was updated, thanks to Grzegorz Gibas. Update pt_BR translation. Add *~, *.rej, *.orig files to git ignore list. Fix for support >=automake-1.11.4 Trim trailing white spaces on empty lines. Trim trailing white spaces. Add missing vim modeline. Fix indentation and few trailing white spaces. Clear few more warnings, unused variables mostly. Drop unused variable. Remove commented out code. Remove commented out code. Remove commented out code. Remove commented out code. Remove commented out code. ...
author Klaus Ethgen <Klaus@Ethgen.de>
date Tue, 02 Oct 2012 22:19:13 +0100
parents 58cd15125b23 c14a1d8e6aa4
children 5a9bdebb109f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
1 /*
196
bdad1cacadf4 rename GQview -> Geeqie over the code
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 195
diff changeset
2 * Geeqie
79
5c92448632fa Thu Oct 19 07:23:37 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 76
diff changeset
3 * (C) 2006 John Ellis
2021
26dfd7a4d130 updated version and copyright notice
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 2013
diff changeset
4 * Copyright (C) 2008 - 2012 The Geeqie Team
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
5 *
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
6 * Author: John Ellis
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
7 *
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
8 * This software is released under the GNU General Public License (GNU GPL).
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
9 * Please read the included file COPYING for more information.
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
10 * This software comes with no warranty of any kind, use at your own risk!
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
11 */
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
12
1711
dd4b55bac412 Some systems (BSD,MacOsX,HP-UX,...) define MAP_ANON and not MAP_ANONYMOUS. Make each an alias of other to be sure. issue reported by Martin Proetzsch.
Laurent Monin <geeqie@norz.org>
parents: 1640
diff changeset
13 #include <gdk/gdkkeysyms.h> /* for keyboard values */
dd4b55bac412 Some systems (BSD,MacOsX,HP-UX,...) define MAP_ANON and not MAP_ANONYMOUS. Make each an alias of other to be sure. issue reported by Martin Proetzsch.
Laurent Monin <geeqie@norz.org>
parents: 1640
diff changeset
14
dd4b55bac412 Some systems (BSD,MacOsX,HP-UX,...) define MAP_ANON and not MAP_ANONYMOUS. Make each an alias of other to be sure. issue reported by Martin Proetzsch.
Laurent Monin <geeqie@norz.org>
parents: 1640
diff changeset
15 #include <signal.h>
dd4b55bac412 Some systems (BSD,MacOsX,HP-UX,...) define MAP_ANON and not MAP_ANONYMOUS. Make each an alias of other to be sure. issue reported by Martin Proetzsch.
Laurent Monin <geeqie@norz.org>
parents: 1640
diff changeset
16 #include <sys/mman.h>
dd4b55bac412 Some systems (BSD,MacOsX,HP-UX,...) define MAP_ANON and not MAP_ANONYMOUS. Make each an alias of other to be sure. issue reported by Martin Proetzsch.
Laurent Monin <geeqie@norz.org>
parents: 1640
diff changeset
17
dd4b55bac412 Some systems (BSD,MacOsX,HP-UX,...) define MAP_ANON and not MAP_ANONYMOUS. Make each an alias of other to be sure. issue reported by Martin Proetzsch.
Laurent Monin <geeqie@norz.org>
parents: 1640
diff changeset
18 #include <math.h>
dd4b55bac412 Some systems (BSD,MacOsX,HP-UX,...) define MAP_ANON and not MAP_ANONYMOUS. Make each an alias of other to be sure. issue reported by Martin Proetzsch.
Laurent Monin <geeqie@norz.org>
parents: 1640
diff changeset
19 #ifdef G_OS_UNIX
dd4b55bac412 Some systems (BSD,MacOsX,HP-UX,...) define MAP_ANON and not MAP_ANONYMOUS. Make each an alias of other to be sure. issue reported by Martin Proetzsch.
Laurent Monin <geeqie@norz.org>
parents: 1640
diff changeset
20 #include <pwd.h>
dd4b55bac412 Some systems (BSD,MacOsX,HP-UX,...) define MAP_ANON and not MAP_ANONYMOUS. Make each an alias of other to be sure. issue reported by Martin Proetzsch.
Laurent Monin <geeqie@norz.org>
parents: 1640
diff changeset
21 #endif
2035
4321c486aec7 use cairo for drawing
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 2034
diff changeset
22 #include <locale.h>
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
23
281
b1c2c2cf19d4 gqview.h -> main.h
Laurent Monin <geeqie@norz.org>
parents: 279
diff changeset
24 #include "main.h"
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
25
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
26 #include "cache.h"
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
27 #include "collect.h"
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
28 #include "collect-io.h"
586
122fc2223b42 split filelist.c to filefilter.c and filedata.c
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 576
diff changeset
29 #include "filedata.h"
122fc2223b42 split filelist.c to filefilter.c and filedata.c
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 576
diff changeset
30 #include "filefilter.h"
902
ee3a7b7dbc33 Move history_list_*() functions to separate files:
Laurent Monin <geeqie@norz.org>
parents: 877
diff changeset
31 #include "history_list.h"
218
9ec9947e7682 Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
Laurent Monin <geeqie@norz.org>
parents: 214
diff changeset
32 #include "image-overlay.h"
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
33 #include "layout.h"
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
34 #include "layout_image.h"
1736
7179fa22dc1b load desktop files in idle time
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1735
diff changeset
35 #include "layout_util.h"
1019
90fb159e5161 Move save/load_options() to options.[ch].
Laurent Monin <geeqie@norz.org>
parents: 1018
diff changeset
36 #include "options.h"
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
37 #include "remote.h"
1061
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
38 #include "secure_save.h"
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
39 #include "similar.h"
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
40 #include "ui_fileops.h"
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
41 #include "ui_utildlg.h"
793
074d59c7fa2f used new notification in cache_maint
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 786
diff changeset
42 #include "cache_maint.h"
877
e5d1fa4dc807 refresh thumbnails on file change
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 840
diff changeset
43 #include "thumb.h"
1214
1e36edfd2a43 write metadata after timeout, image change or dir change
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1174
diff changeset
44 #include "metadata.h"
1272
661e170bf4f7 read external editors from .desktop files
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1266
diff changeset
45 #include "editors.h"
1288
01a4a8674c8b use metadata_read_* functions where possible
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1284
diff changeset
46 #include "exif.h"
1294
892eeb2fce22 histogram caching
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1288
diff changeset
47 #include "histogram.h"
1334
89c9db0e3258 create toolbar from ui_manager
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1321
diff changeset
48 #include "pixbuf_util.h"
2197
ef11ba400848 Overlay info with lua
Klaus Ethgen <Klaus@Ethgen.de>
parents: 2196
diff changeset
49 #include "glua.h"
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
50
2077
034e50486d27 added autoconf test for clutter
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 2035
diff changeset
51 #ifdef HAVE_CLUTTER
1758
dba1d6eaf8ce require libchamplain 0.4
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1736
diff changeset
52 #include <clutter-gtk/clutter-gtk.h>
1733
c47eee6c8248 Fix up compilation issues related to libchamplain.
Laurent Monin <geeqie@norz.org>
parents: 1726
diff changeset
53 #endif
c47eee6c8248 Fix up compilation issues related to libchamplain.
Laurent Monin <geeqie@norz.org>
parents: 1726
diff changeset
54
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
55
1506
6e235e3ba076 Force thumbnails refreshing when thumbnails dimensions are modified through Preferences.
Laurent Monin <geeqie@norz.org>
parents: 1463
diff changeset
56 gboolean thumb_format_changed = FALSE;
279
70aa7725d5cf gqview_remote -> remote_connection
Laurent Monin <geeqie@norz.org>
parents: 278
diff changeset
57 static RemoteConnection *remote_connection = NULL;
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
58
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
59 /*
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
60 *-----------------------------------------------------------------------------
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
61 * keyboard functions
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
62 *-----------------------------------------------------------------------------
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
63 */
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
64
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
65 void keyboard_scroll_calc(gint *x, gint *y, GdkEventKey *event)
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
66 {
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
67 static gint delta = 0;
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
68 static guint32 time_old = 0;
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
69 static guint keyval_old = 0;
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
70
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
71 if (event->state & GDK_CONTROL_MASK)
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
72 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
73 if (*x < 0) *x = G_MININT / 2;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
74 if (*x > 0) *x = G_MAXINT / 2;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
75 if (*y < 0) *y = G_MININT / 2;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
76 if (*y > 0) *y = G_MAXINT / 2;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
77
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
78 return;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
79 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
80
318
e8261920c720 Add a new struct ConfOptions to handle options.
Laurent Monin <geeqie@norz.org>
parents: 289
diff changeset
81 if (options->progressive_key_scrolling)
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
82 {
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
83 guint32 time_diff;
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
84
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
85 time_diff = event->time - time_old;
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
86
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
87 /* key pressed within 125ms ? (1/8 second) */
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
88 if (time_diff > 125 || event->keyval != keyval_old) delta = 0;
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
89
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
90 time_old = event->time;
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
91 keyval_old = event->keyval;
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
92
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
93 delta += 2;
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
94 }
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
95 else
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
96 {
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
97 delta = 8;
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
98 }
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
99
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
100 *x = *x * delta;
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
101 *y = *y * delta;
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
102 }
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
103
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
104
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
105
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
106 /*
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
107 *-----------------------------------------------------------------------------
3
John Ellis <johne@verizon.net>
parents: 1
diff changeset
108 * command line parser (private) hehe, who needs popt anyway?
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
109 *-----------------------------------------------------------------------------
442
f698b737556b Big whitespaces cleanup:
Laurent Monin <geeqie@norz.org>
parents: 433
diff changeset
110 */
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
111
76
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
112 static void parse_command_line_add_file(const gchar *file_path, gchar **path, gchar **file,
442
f698b737556b Big whitespaces cleanup:
Laurent Monin <geeqie@norz.org>
parents: 433
diff changeset
113 GList **list, GList **collection_list)
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
114 {
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
115 gchar *path_parsed;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
116
76
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
117 path_parsed = g_strdup(file_path);
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
118 parse_out_relatives(path_parsed);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
119
781
a47bf5b8a85b Replace hardcoded collection filename extension by a macro (GQ_COLLECTION_EXT).
Laurent Monin <geeqie@norz.org>
parents: 780
diff changeset
120 if (file_extension_match(path_parsed, GQ_COLLECTION_EXT))
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
121 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
122 *collection_list = g_list_append(*collection_list, path_parsed);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
123 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
124 else
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
125 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
126 if (!*path) *path = remove_level_from_path(path_parsed);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
127 if (!*file) *file = g_strdup(path_parsed);
1936
ed6aa14b66c9 rename file_data_new_simple to file_data_new_group, filedata.c cleanup
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1927
diff changeset
128 *list = g_list_prepend(*list, file_data_new_group(path_parsed));
76
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
129 }
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
130 }
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
131
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
132 static void parse_command_line_add_dir(const gchar *dir, gchar **path, gchar **file,
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
133 GList **list)
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
134 {
1764
867e863105a4 ignored multiple directories specified on commandline
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1758
diff changeset
135 #if 0
867e863105a4 ignored multiple directories specified on commandline
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1758
diff changeset
136 /* This is broken because file filter is not initialized yet.
867e863105a4 ignored multiple directories specified on commandline
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1758
diff changeset
137 */
780
f5dc8c7d6a5a Drop initialization to NULL since filelist_read() will take care of it.
Laurent Monin <geeqie@norz.org>
parents: 767
diff changeset
138 GList *files;
76
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
139 gchar *path_parsed;
783
0e45ed008a1c replaced directory path with FileData* dir_fd
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 782
diff changeset
140 FileData *dir_fd;
76
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
141
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
142 path_parsed = g_strdup(dir);
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
143 parse_out_relatives(path_parsed);
1927
d1a5b8633919 always check for sidecars by readdir
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1872
diff changeset
144 dir_fd = file_data_new_dir(path_parsed);
2185
c14a1d8e6aa4 Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents: 2184
diff changeset
145
76
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
146
783
0e45ed008a1c replaced directory path with FileData* dir_fd
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 782
diff changeset
147 if (filelist_read(dir_fd, &files, NULL))
76
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
148 {
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
149 GList *work;
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
150
576
47680a5f898a dropped path_list functions, use filelist functions everywhere
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 556
diff changeset
151 files = filelist_filter(files, FALSE);
47680a5f898a dropped path_list functions, use filelist functions everywhere
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 556
diff changeset
152 files = filelist_sort_path(files);
76
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
153
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
154 work = files;
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
155 while (work)
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
156 {
576
47680a5f898a dropped path_list functions, use filelist functions everywhere
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 556
diff changeset
157 FileData *fd = work->data;
47680a5f898a dropped path_list functions, use filelist functions everywhere
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 556
diff changeset
158 if (!*path) *path = remove_level_from_path(fd->path);
47680a5f898a dropped path_list functions, use filelist functions everywhere
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 556
diff changeset
159 if (!*file) *file = g_strdup(fd->path);
47680a5f898a dropped path_list functions, use filelist functions everywhere
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 556
diff changeset
160 *list = g_list_prepend(*list, fd);
76
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
161
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
162 work = work->next;
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
163 }
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
164
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
165 g_list_free(files);
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
166 }
76
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
167
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
168 g_free(path_parsed);
783
0e45ed008a1c replaced directory path with FileData* dir_fd
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 782
diff changeset
169 file_data_unref(dir_fd);
1764
867e863105a4 ignored multiple directories specified on commandline
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1758
diff changeset
170 #else
867e863105a4 ignored multiple directories specified on commandline
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1758
diff changeset
171 DEBUG_1("multiple directories specified, ignoring: %s", dir);
867e863105a4 ignored multiple directories specified on commandline
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1758
diff changeset
172 #endif
76
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
173 }
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
174
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
175 static void parse_command_line_process_dir(const gchar *dir, gchar **path, gchar **file,
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
176 GList **list, gchar **first_dir)
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
177 {
442
f698b737556b Big whitespaces cleanup:
Laurent Monin <geeqie@norz.org>
parents: 433
diff changeset
178
76
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
179 if (!*list && !*first_dir)
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
180 {
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
181 *first_dir = g_strdup(dir);
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
182 }
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
183 else
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
184 {
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
185 if (*first_dir)
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
186 {
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
187 parse_command_line_add_dir(*first_dir, path, file, list);
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
188 g_free(*first_dir);
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
189 *first_dir = NULL;
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
190 }
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
191 parse_command_line_add_dir(dir, path, file, list);
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
192 }
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
193 }
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
194
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
195 static void parse_command_line_process_file(const gchar *file_path, gchar **path, gchar **file,
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
196 GList **list, GList **collection_list, gchar **first_dir)
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
197 {
442
f698b737556b Big whitespaces cleanup:
Laurent Monin <geeqie@norz.org>
parents: 433
diff changeset
198
76
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
199 if (*first_dir)
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
200 {
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
201 parse_command_line_add_dir(*first_dir, path, file, list);
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
202 g_free(*first_dir);
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
203 *first_dir = NULL;
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
204 }
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
205 parse_command_line_add_file(file_path, path, file, list, collection_list);
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
206 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
207
1313
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
208 static void parse_command_line(gint argc, gchar *argv[])
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
209 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
210 GList *list = NULL;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
211 GList *remote_list = NULL;
652
ecbc361c6b7f Display a message when invalid remote options are used.
Laurent Monin <geeqie@norz.org>
parents: 649
diff changeset
212 GList *remote_errors = NULL;
1437
cc423d10b73e gint -> gboolean.
Laurent Monin <geeqie@norz.org>
parents: 1346
diff changeset
213 gboolean remote_do = FALSE;
76
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
214 gchar *first_dir = NULL;
2185
c14a1d8e6aa4 Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents: 2184
diff changeset
215
1313
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
216 command_line = g_new0(CommandLine, 1);
2185
c14a1d8e6aa4 Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents: 2184
diff changeset
217
1313
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
218 command_line->argc = argc;
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
219 command_line->argv = argv;
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
220
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
221 if (argc > 1)
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
222 {
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
223 gint i;
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
224 gchar *base_dir = get_current_dir();
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
225 i = 1;
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
226 while (i < argc)
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
227 {
1507
61c25bd19236 convert commandline to utf8
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1506
diff changeset
228 gchar *cmd_line = path_to_utf8(argv[i]);
702
1350095d7b25 Drop concat_dir_and_file() and use g_build_filename() instead.
Laurent Monin <geeqie@norz.org>
parents: 694
diff changeset
229 gchar *cmd_all = g_build_filename(base_dir, cmd_line, NULL);
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
230
726
5166ed61c537 Use G_DIR_SEPARATOR where applicable.
Laurent Monin <geeqie@norz.org>
parents: 714
diff changeset
231 if (cmd_line[0] == G_DIR_SEPARATOR && isdir(cmd_line))
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
232 {
1313
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
233 parse_command_line_process_dir(cmd_line, &command_line->path, &command_line->file, &list, &first_dir);
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
234 }
76
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
235 else if (isdir(cmd_all))
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
236 {
1313
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
237 parse_command_line_process_dir(cmd_all, &command_line->path, &command_line->file, &list, &first_dir);
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
238 }
726
5166ed61c537 Use G_DIR_SEPARATOR where applicable.
Laurent Monin <geeqie@norz.org>
parents: 714
diff changeset
239 else if (cmd_line[0] == G_DIR_SEPARATOR && isfile(cmd_line))
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
240 {
1313
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
241 parse_command_line_process_file(cmd_line, &command_line->path, &command_line->file,
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
242 &list, &command_line->collection_list, &first_dir);
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
243 }
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
244 else if (isfile(cmd_all))
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
245 {
1313
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
246 parse_command_line_process_file(cmd_all, &command_line->path, &command_line->file,
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
247 &list, &command_line->collection_list, &first_dir);
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
248 }
378
5651f2073a71 Parse command line for --debug option as soon as possible and allow
Laurent Monin <geeqie@norz.org>
parents: 367
diff changeset
249 else if (strncmp(cmd_line, "--debug", 7) == 0 && (cmd_line[7] == '\0' || cmd_line[7] == '='))
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
250 {
378
5651f2073a71 Parse command line for --debug option as soon as possible and allow
Laurent Monin <geeqie@norz.org>
parents: 367
diff changeset
251 /* do nothing but do not produce warnings */
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
252 }
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
253 else if (strcmp(cmd_line, "+t") == 0 ||
3
John Ellis <johne@verizon.net>
parents: 1
diff changeset
254 strcmp(cmd_line, "--with-tools") == 0)
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
255 {
1313
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
256 command_line->tools_show = TRUE;
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
257
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
258 remote_list = g_list_append(remote_list, "+t");
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
259 }
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
260 else if (strcmp(cmd_line, "-t") == 0 ||
3
John Ellis <johne@verizon.net>
parents: 1
diff changeset
261 strcmp(cmd_line, "--without-tools") == 0)
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
262 {
1313
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
263 command_line->tools_hide = TRUE;
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
264
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
265 remote_list = g_list_append(remote_list, "-t");
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
266 }
3
John Ellis <johne@verizon.net>
parents: 1
diff changeset
267 else if (strcmp(cmd_line, "-f") == 0 ||
John Ellis <johne@verizon.net>
parents: 1
diff changeset
268 strcmp(cmd_line, "--fullscreen") == 0)
John Ellis <johne@verizon.net>
parents: 1
diff changeset
269 {
1313
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
270 command_line->startup_full_screen = TRUE;
3
John Ellis <johne@verizon.net>
parents: 1
diff changeset
271 }
John Ellis <johne@verizon.net>
parents: 1
diff changeset
272 else if (strcmp(cmd_line, "-s") == 0 ||
John Ellis <johne@verizon.net>
parents: 1
diff changeset
273 strcmp(cmd_line, "--slideshow") == 0)
John Ellis <johne@verizon.net>
parents: 1
diff changeset
274 {
1313
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
275 command_line->startup_in_slideshow = TRUE;
3
John Ellis <johne@verizon.net>
parents: 1
diff changeset
276 }
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
277 else if (strcmp(cmd_line, "-l") == 0 ||
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
278 strcmp(cmd_line, "--list") == 0)
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
279 {
1313
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
280 command_line->startup_command_line_collection = TRUE;
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
281 }
81
e2c85104c1eb Thu Oct 19 09:35:18 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 79
diff changeset
282 else if (strncmp(cmd_line, "--geometry=", 11) == 0)
e2c85104c1eb Thu Oct 19 09:35:18 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 79
diff changeset
283 {
1313
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
284 if (!command_line->geometry) command_line->geometry = g_strdup(cmd_line + 11);
81
e2c85104c1eb Thu Oct 19 09:35:18 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 79
diff changeset
285 }
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
286 else if (strcmp(cmd_line, "-r") == 0 ||
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
287 strcmp(cmd_line, "--remote") == 0)
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
288 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
289 if (!remote_do)
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
290 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
291 remote_do = TRUE;
652
ecbc361c6b7f Display a message when invalid remote options are used.
Laurent Monin <geeqie@norz.org>
parents: 649
diff changeset
292 remote_list = remote_build_list(remote_list, argc - i, &argv[i], &remote_errors);
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
293 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
294 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
295 else if (strcmp(cmd_line, "-rh") == 0 ||
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
296 strcmp(cmd_line, "--remote-help") == 0)
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
297 {
279
70aa7725d5cf gqview_remote -> remote_connection
Laurent Monin <geeqie@norz.org>
parents: 278
diff changeset
298 remote_help();
512
0896f486ec6f Remove whitespace between function name and first parenthesis for the sake of consistency.
Laurent Monin <geeqie@norz.org>
parents: 509
diff changeset
299 exit(0);
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
300 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
301 else if (strcmp(cmd_line, "--blank") == 0)
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
302 {
1313
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
303 command_line->startup_blank = TRUE;
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
304 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
305 else if (strcmp(cmd_line, "-v") == 0 ||
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
306 strcmp(cmd_line, "--version") == 0)
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
307 {
694
547663d27a70 Sort out log_printf() vs printf_term() mix up.
Laurent Monin <geeqie@norz.org>
parents: 687
diff changeset
308 printf_term("%s %s\n", GQ_APPNAME, VERSION);
512
0896f486ec6f Remove whitespace between function name and first parenthesis for the sake of consistency.
Laurent Monin <geeqie@norz.org>
parents: 509
diff changeset
309 exit(0);
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
310 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
311 else if (strcmp(cmd_line, "--alternate") == 0)
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
312 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
313 /* enable faster experimental algorithm */
673
c9c2bc042e10 Do not use printf() directly but use new wrapper function log_printf() instead.
Laurent Monin <geeqie@norz.org>
parents: 671
diff changeset
314 log_printf("Alternate similarity algorithm enabled\n");
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
315 image_sim_alternate_set(TRUE);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
316 }
3
John Ellis <johne@verizon.net>
parents: 1
diff changeset
317 else if (strcmp(cmd_line, "-h") == 0 ||
John Ellis <johne@verizon.net>
parents: 1
diff changeset
318 strcmp(cmd_line, "--help") == 0)
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
319 {
694
547663d27a70 Sort out log_printf() vs printf_term() mix up.
Laurent Monin <geeqie@norz.org>
parents: 687
diff changeset
320 printf_term("%s %s\n", GQ_APPNAME, VERSION);
403
5ec4bf3224c9 Introduce printf_term() macro and use it.
Laurent Monin <geeqie@norz.org>
parents: 387
diff changeset
321 printf_term(_("Usage: %s [options] [path]\n\n"), GQ_APPNAME_LC);
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
322 print_term(_("valid options are:\n"));
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
323 print_term(_(" +t, --with-tools force show of tools\n"));
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
324 print_term(_(" -t, --without-tools force hide of tools\n"));
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
325 print_term(_(" -f, --fullscreen start in full screen mode\n"));
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
326 print_term(_(" -s, --slideshow start in slideshow mode\n"));
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
327 print_term(_(" -l, --list open collection window for command line\n"));
81
e2c85104c1eb Thu Oct 19 09:35:18 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 79
diff changeset
328 print_term(_(" --geometry=GEOMETRY set main window location\n"));
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
329 print_term(_(" -r, --remote send following commands to open window\n"));
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
330 print_term(_(" -rh,--remote-help print remote command list\n"));
227
8c04a55c0229 Add a debug level spinner at the end of Preferences > Advanced.
Laurent Monin <geeqie@norz.org>
parents: 218
diff changeset
331 #ifdef DEBUG
379
5606c3363ca9 Indicate --debug[=level] in usage display.
Laurent Monin <geeqie@norz.org>
parents: 378
diff changeset
332 print_term(_(" --debug[=level] turn on debug output\n"));
227
8c04a55c0229 Add a debug level spinner at the end of Preferences > Advanced.
Laurent Monin <geeqie@norz.org>
parents: 218
diff changeset
333 #endif
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
334 print_term(_(" -v, --version print version info\n"));
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
335 print_term(_(" -h, --help show this message\n\n"));
442
f698b737556b Big whitespaces cleanup:
Laurent Monin <geeqie@norz.org>
parents: 433
diff changeset
336
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
337 #if 0
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
338 /* these options are not officially supported!
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
339 * only for testing new features, no need to translate them */
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
340 print_term( " --alternate use alternate similarity algorithm\n");
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
341 #endif
442
f698b737556b Big whitespaces cleanup:
Laurent Monin <geeqie@norz.org>
parents: 433
diff changeset
342
512
0896f486ec6f Remove whitespace between function name and first parenthesis for the sake of consistency.
Laurent Monin <geeqie@norz.org>
parents: 509
diff changeset
343 exit(0);
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
344 }
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
345 else if (!remote_do)
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
346 {
403
5ec4bf3224c9 Introduce printf_term() macro and use it.
Laurent Monin <geeqie@norz.org>
parents: 387
diff changeset
347 printf_term(_("invalid or ignored: %s\nUse --help for options\n"), cmd_line);
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
348 }
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
349
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
350 g_free(cmd_all);
1507
61c25bd19236 convert commandline to utf8
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1506
diff changeset
351 g_free(cmd_line);
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
352 i++;
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
353 }
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
354 g_free(base_dir);
1313
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
355 parse_out_relatives(command_line->path);
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
356 parse_out_relatives(command_line->file);
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
357 }
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
358
76
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
359 list = g_list_reverse(list);
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
360
1313
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
361 if (!command_line->path && first_dir)
76
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
362 {
1313
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
363 command_line->path = first_dir;
76
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
364 first_dir = NULL;
79
5c92448632fa Thu Oct 19 07:23:37 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 76
diff changeset
365
1313
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
366 parse_out_relatives(command_line->path);
76
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
367 }
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
368 g_free(first_dir);
a4278849630a Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 21
diff changeset
369
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
370 if (remote_do)
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
371 {
652
ecbc361c6b7f Display a message when invalid remote options are used.
Laurent Monin <geeqie@norz.org>
parents: 649
diff changeset
372 if (remote_errors)
ecbc361c6b7f Display a message when invalid remote options are used.
Laurent Monin <geeqie@norz.org>
parents: 649
diff changeset
373 {
ecbc361c6b7f Display a message when invalid remote options are used.
Laurent Monin <geeqie@norz.org>
parents: 649
diff changeset
374 GList *work = remote_errors;
2185
c14a1d8e6aa4 Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents: 2184
diff changeset
375
652
ecbc361c6b7f Display a message when invalid remote options are used.
Laurent Monin <geeqie@norz.org>
parents: 649
diff changeset
376 printf_term(_("Invalid or ignored remote options: "));
ecbc361c6b7f Display a message when invalid remote options are used.
Laurent Monin <geeqie@norz.org>
parents: 649
diff changeset
377 while (work)
ecbc361c6b7f Display a message when invalid remote options are used.
Laurent Monin <geeqie@norz.org>
parents: 649
diff changeset
378 {
ecbc361c6b7f Display a message when invalid remote options are used.
Laurent Monin <geeqie@norz.org>
parents: 649
diff changeset
379 gchar *opt = work->data;
2185
c14a1d8e6aa4 Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents: 2184
diff changeset
380
652
ecbc361c6b7f Display a message when invalid remote options are used.
Laurent Monin <geeqie@norz.org>
parents: 649
diff changeset
381 printf_term("%s%s", (work == remote_errors) ? "" : ", ", opt);
ecbc361c6b7f Display a message when invalid remote options are used.
Laurent Monin <geeqie@norz.org>
parents: 649
diff changeset
382 work = work->next;
ecbc361c6b7f Display a message when invalid remote options are used.
Laurent Monin <geeqie@norz.org>
parents: 649
diff changeset
383 }
ecbc361c6b7f Display a message when invalid remote options are used.
Laurent Monin <geeqie@norz.org>
parents: 649
diff changeset
384
ecbc361c6b7f Display a message when invalid remote options are used.
Laurent Monin <geeqie@norz.org>
parents: 649
diff changeset
385 printf_term(_("\nUse --remote-help for valid remote options.\n"));
ecbc361c6b7f Display a message when invalid remote options are used.
Laurent Monin <geeqie@norz.org>
parents: 649
diff changeset
386 }
ecbc361c6b7f Display a message when invalid remote options are used.
Laurent Monin <geeqie@norz.org>
parents: 649
diff changeset
387
1313
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
388 remote_control(argv[0], remote_list, command_line->path, list, command_line->collection_list);
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
389 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
390 g_list_free(remote_list);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
391
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
392 if (list && list->next)
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
393 {
1313
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
394 command_line->cmd_list = list;
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
395 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
396 else
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
397 {
576
47680a5f898a dropped path_list functions, use filelist functions everywhere
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 556
diff changeset
398 filelist_free(list);
1313
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
399 command_line->cmd_list = NULL;
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
400 }
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
401
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
402 if (command_line->startup_blank)
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
403 {
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
404 g_free(command_line->path);
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
405 command_line->path = NULL;
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
406 g_free(command_line->file);
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
407 command_line->file = NULL;
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
408 filelist_free(command_line->cmd_list);
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
409 command_line->cmd_list = NULL;
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
410 string_list_free(command_line->collection_list);
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
411 command_line->collection_list = NULL;
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
412 }
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
413 }
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
414
1000
07f6093c1c1a For the sake of consistency, use glib basic types everywhere.
Laurent Monin <geeqie@norz.org>
parents: 995
diff changeset
415 static void parse_command_line_for_debug_option(gint argc, gchar *argv[])
378
5651f2073a71 Parse command line for --debug option as soon as possible and allow
Laurent Monin <geeqie@norz.org>
parents: 367
diff changeset
416 {
5651f2073a71 Parse command line for --debug option as soon as possible and allow
Laurent Monin <geeqie@norz.org>
parents: 367
diff changeset
417 #ifdef DEBUG
5651f2073a71 Parse command line for --debug option as soon as possible and allow
Laurent Monin <geeqie@norz.org>
parents: 367
diff changeset
418 const gchar *debug_option = "--debug";
5651f2073a71 Parse command line for --debug option as soon as possible and allow
Laurent Monin <geeqie@norz.org>
parents: 367
diff changeset
419 gint len = strlen(debug_option);
5651f2073a71 Parse command line for --debug option as soon as possible and allow
Laurent Monin <geeqie@norz.org>
parents: 367
diff changeset
420
5651f2073a71 Parse command line for --debug option as soon as possible and allow
Laurent Monin <geeqie@norz.org>
parents: 367
diff changeset
421 if (argc > 1)
5651f2073a71 Parse command line for --debug option as soon as possible and allow
Laurent Monin <geeqie@norz.org>
parents: 367
diff changeset
422 {
5651f2073a71 Parse command line for --debug option as soon as possible and allow
Laurent Monin <geeqie@norz.org>
parents: 367
diff changeset
423 gint i;
442
f698b737556b Big whitespaces cleanup:
Laurent Monin <geeqie@norz.org>
parents: 433
diff changeset
424
378
5651f2073a71 Parse command line for --debug option as soon as possible and allow
Laurent Monin <geeqie@norz.org>
parents: 367
diff changeset
425 for (i = 1; i < argc; i++)
5651f2073a71 Parse command line for --debug option as soon as possible and allow
Laurent Monin <geeqie@norz.org>
parents: 367
diff changeset
426 {
5651f2073a71 Parse command line for --debug option as soon as possible and allow
Laurent Monin <geeqie@norz.org>
parents: 367
diff changeset
427 const gchar *cmd_line = argv[i];
5651f2073a71 Parse command line for --debug option as soon as possible and allow
Laurent Monin <geeqie@norz.org>
parents: 367
diff changeset
428 if (strncmp(cmd_line, debug_option, len) == 0)
5651f2073a71 Parse command line for --debug option as soon as possible and allow
Laurent Monin <geeqie@norz.org>
parents: 367
diff changeset
429 {
5651f2073a71 Parse command line for --debug option as soon as possible and allow
Laurent Monin <geeqie@norz.org>
parents: 367
diff changeset
430 gint cmd_line_len = strlen(cmd_line);
5651f2073a71 Parse command line for --debug option as soon as possible and allow
Laurent Monin <geeqie@norz.org>
parents: 367
diff changeset
431
5651f2073a71 Parse command line for --debug option as soon as possible and allow
Laurent Monin <geeqie@norz.org>
parents: 367
diff changeset
432 /* we now increment the debug state for verbosity */
5651f2073a71 Parse command line for --debug option as soon as possible and allow
Laurent Monin <geeqie@norz.org>
parents: 367
diff changeset
433 if (cmd_line_len == len)
507
7408e89b601d Move debug macros from main.h to new debug.h.
Laurent Monin <geeqie@norz.org>
parents: 506
diff changeset
434 debug_level_add(1);
378
5651f2073a71 Parse command line for --debug option as soon as possible and allow
Laurent Monin <geeqie@norz.org>
parents: 367
diff changeset
435 else if (cmd_line[len] == '=' && g_ascii_isdigit(cmd_line[len+1]))
5651f2073a71 Parse command line for --debug option as soon as possible and allow
Laurent Monin <geeqie@norz.org>
parents: 367
diff changeset
436 {
5651f2073a71 Parse command line for --debug option as soon as possible and allow
Laurent Monin <geeqie@norz.org>
parents: 367
diff changeset
437 gint n = atoi(cmd_line + len + 1);
5651f2073a71 Parse command line for --debug option as soon as possible and allow
Laurent Monin <geeqie@norz.org>
parents: 367
diff changeset
438 if (n < 0) n = 1;
507
7408e89b601d Move debug macros from main.h to new debug.h.
Laurent Monin <geeqie@norz.org>
parents: 506
diff changeset
439 debug_level_add(n);
378
5651f2073a71 Parse command line for --debug option as soon as possible and allow
Laurent Monin <geeqie@norz.org>
parents: 367
diff changeset
440 }
5651f2073a71 Parse command line for --debug option as soon as possible and allow
Laurent Monin <geeqie@norz.org>
parents: 367
diff changeset
441 }
5651f2073a71 Parse command line for --debug option as soon as possible and allow
Laurent Monin <geeqie@norz.org>
parents: 367
diff changeset
442 }
5651f2073a71 Parse command line for --debug option as soon as possible and allow
Laurent Monin <geeqie@norz.org>
parents: 367
diff changeset
443 }
5651f2073a71 Parse command line for --debug option as soon as possible and allow
Laurent Monin <geeqie@norz.org>
parents: 367
diff changeset
444
507
7408e89b601d Move debug macros from main.h to new debug.h.
Laurent Monin <geeqie@norz.org>
parents: 506
diff changeset
445 DEBUG_1("debugging output enabled (level %d)", get_debug_level());
378
5651f2073a71 Parse command line for --debug option as soon as possible and allow
Laurent Monin <geeqie@norz.org>
parents: 367
diff changeset
446 #endif
5651f2073a71 Parse command line for --debug option as soon as possible and allow
Laurent Monin <geeqie@norz.org>
parents: 367
diff changeset
447 }
5651f2073a71 Parse command line for --debug option as soon as possible and allow
Laurent Monin <geeqie@norz.org>
parents: 367
diff changeset
448
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
449 /*
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
450 *-----------------------------------------------------------------------------
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
451 * startup, init, and exit
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
452 *-----------------------------------------------------------------------------
442
f698b737556b Big whitespaces cleanup:
Laurent Monin <geeqie@norz.org>
parents: 433
diff changeset
453 */
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
454
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
455 #define RC_HISTORY_NAME "history"
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
456
1640
0c3ee4176c00 do not install helper scripts into /usr/bin
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1620
diff changeset
457 static void setup_env_path(void)
0c3ee4176c00 do not install helper scripts into /usr/bin
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1620
diff changeset
458 {
0c3ee4176c00 do not install helper scripts into /usr/bin
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1620
diff changeset
459 const gchar *old_path = g_getenv("PATH");
0c3ee4176c00 do not install helper scripts into /usr/bin
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1620
diff changeset
460 gchar *path = g_strconcat(GQ_BIN_DIR, ":", old_path, NULL);
0c3ee4176c00 do not install helper scripts into /usr/bin
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1620
diff changeset
461 g_setenv("PATH", path, TRUE);
0c3ee4176c00 do not install helper scripts into /usr/bin
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1620
diff changeset
462 g_free(path);
0c3ee4176c00 do not install helper scripts into /usr/bin
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1620
diff changeset
463 }
0c3ee4176c00 do not install helper scripts into /usr/bin
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1620
diff changeset
464
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
465 static void keys_load(void)
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
466 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
467 gchar *path;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
468
1145
94adf34fe826 Use functions to return directories instead of constants.
Laurent Monin <geeqie@norz.org>
parents: 1089
diff changeset
469 path = g_build_filename(get_rc_dir(), RC_HISTORY_NAME, NULL);
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
470 history_list_load(path);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
471 g_free(path);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
472 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
473
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
474 static void keys_save(void)
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
475 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
476 gchar *path;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
477
1145
94adf34fe826 Use functions to return directories instead of constants.
Laurent Monin <geeqie@norz.org>
parents: 1089
diff changeset
478 path = g_build_filename(get_rc_dir(), RC_HISTORY_NAME, NULL);
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
479 history_list_save(path);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
480 g_free(path);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
481 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
482
1146
7ff2f0c1ddc5 Rename check_for_home_path() to mkdir_if_not_exists().
Laurent Monin <geeqie@norz.org>
parents: 1145
diff changeset
483 static void mkdir_if_not_exists(const gchar *path)
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
484 {
1145
94adf34fe826 Use functions to return directories instead of constants.
Laurent Monin <geeqie@norz.org>
parents: 1089
diff changeset
485 if (isdir(path)) return;
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
486
1145
94adf34fe826 Use functions to return directories instead of constants.
Laurent Monin <geeqie@norz.org>
parents: 1089
diff changeset
487 log_printf(_("Creating %s dir:%s\n"), GQ_APPNAME, path);
94adf34fe826 Use functions to return directories instead of constants.
Laurent Monin <geeqie@norz.org>
parents: 1089
diff changeset
488
1148
db3cdb2b9681 Replace cache_ensure_dir_exists() by new recursive_mkdir_if_not_exists().
Laurent Monin <geeqie@norz.org>
parents: 1146
diff changeset
489 if (!recursive_mkdir_if_not_exists(path, 0755))
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
490 {
1145
94adf34fe826 Use functions to return directories instead of constants.
Laurent Monin <geeqie@norz.org>
parents: 1089
diff changeset
491 log_printf(_("Could not create dir:%s\n"), path);
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
492 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
493 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
494
1061
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
495
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
496 /* We add to duplicate and modify gtk_accel_map_print() and gtk_accel_map_save()
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
497 * to improve the reliability in special cases (especially when disk is full)
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
498 * These functions are now using secure saving stuff.
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
499 */
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
500 static void gq_accel_map_print(
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
501 gpointer data,
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
502 const gchar *accel_path,
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
503 guint accel_key,
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
504 GdkModifierType accel_mods,
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
505 gboolean changed)
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
506 {
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
507 GString *gstring = g_string_new(changed ? NULL : "; ");
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
508 SecureSaveInfo *ssi = data;
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
509 gchar *tmp, *name;
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
510
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
511 g_string_append(gstring, "(gtk_accel_path \"");
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
512
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
513 tmp = g_strescape(accel_path, NULL);
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
514 g_string_append(gstring, tmp);
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
515 g_free(tmp);
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
516
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
517 g_string_append(gstring, "\" \"");
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
518
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
519 name = gtk_accelerator_name(accel_key, accel_mods);
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
520 tmp = g_strescape(name, NULL);
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
521 g_free(name);
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
522 g_string_append(gstring, tmp);
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
523 g_free(tmp);
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
524
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
525 g_string_append(gstring, "\")\n");
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
526
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
527 secure_fwrite(gstring->str, sizeof(*gstring->str), gstring->len, ssi);
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
528
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
529 g_string_free(gstring, TRUE);
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
530 }
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
531
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
532 static gboolean gq_accel_map_save(const gchar *path)
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
533 {
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
534 gchar *pathl;
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
535 SecureSaveInfo *ssi;
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
536 GString *gstring;
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
537
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
538 pathl = path_from_utf8(path);
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
539 ssi = secure_open(pathl);
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
540 g_free(pathl);
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
541 if (!ssi)
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
542 {
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
543 log_printf(_("error saving file: %s\n"), path);
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
544 return FALSE;
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
545 }
2185
c14a1d8e6aa4 Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents: 2184
diff changeset
546
1061
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
547 gstring = g_string_new("; ");
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
548 if (g_get_prgname())
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
549 g_string_append(gstring, g_get_prgname());
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
550 g_string_append(gstring, " GtkAccelMap rc-file -*- scheme -*-\n");
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
551 g_string_append(gstring, "; this file is an automated accelerator map dump\n");
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
552 g_string_append(gstring, ";\n");
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
553
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
554 secure_fwrite(gstring->str, sizeof(*gstring->str), gstring->len, ssi);
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
555
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
556 g_string_free(gstring, TRUE);
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
557
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
558 gtk_accel_map_foreach((gpointer) ssi, gq_accel_map_print);
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
559
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
560 if (secure_close(ssi))
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
561 {
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
562 log_printf(_("error saving file: %s\nerror: %s\n"), path,
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
563 secsave_strerror(secsave_errno));
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
564 return FALSE;
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
565 }
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
566
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
567 return TRUE;
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
568 }
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
569
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
570 static gchar *accep_map_filename(void)
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
571 {
1145
94adf34fe826 Use functions to return directories instead of constants.
Laurent Monin <geeqie@norz.org>
parents: 1089
diff changeset
572 return g_build_filename(get_rc_dir(), "accels", NULL);
1061
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
573 }
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
574
1017
3571d85b831a Move some code to new functions, to simplify main().
Laurent Monin <geeqie@norz.org>
parents: 1015
diff changeset
575 static void accel_map_save(void)
3571d85b831a Move some code to new functions, to simplify main().
Laurent Monin <geeqie@norz.org>
parents: 1015
diff changeset
576 {
3571d85b831a Move some code to new functions, to simplify main().
Laurent Monin <geeqie@norz.org>
parents: 1015
diff changeset
577 gchar *path;
3571d85b831a Move some code to new functions, to simplify main().
Laurent Monin <geeqie@norz.org>
parents: 1015
diff changeset
578
1061
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
579 path = accep_map_filename();
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
580 gq_accel_map_save(path);
1017
3571d85b831a Move some code to new functions, to simplify main().
Laurent Monin <geeqie@norz.org>
parents: 1015
diff changeset
581 g_free(path);
3571d85b831a Move some code to new functions, to simplify main().
Laurent Monin <geeqie@norz.org>
parents: 1015
diff changeset
582 }
3571d85b831a Move some code to new functions, to simplify main().
Laurent Monin <geeqie@norz.org>
parents: 1015
diff changeset
583
3571d85b831a Move some code to new functions, to simplify main().
Laurent Monin <geeqie@norz.org>
parents: 1015
diff changeset
584 static void accel_map_load(void)
3571d85b831a Move some code to new functions, to simplify main().
Laurent Monin <geeqie@norz.org>
parents: 1015
diff changeset
585 {
3571d85b831a Move some code to new functions, to simplify main().
Laurent Monin <geeqie@norz.org>
parents: 1015
diff changeset
586 gchar *path;
3571d85b831a Move some code to new functions, to simplify main().
Laurent Monin <geeqie@norz.org>
parents: 1015
diff changeset
587 gchar *pathl;
3571d85b831a Move some code to new functions, to simplify main().
Laurent Monin <geeqie@norz.org>
parents: 1015
diff changeset
588
1061
7f961e204120 Better handling of accels map file writing errors.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
589 path = accep_map_filename();
1017
3571d85b831a Move some code to new functions, to simplify main().
Laurent Monin <geeqie@norz.org>
parents: 1015
diff changeset
590 pathl = path_from_utf8(path);
3571d85b831a Move some code to new functions, to simplify main().
Laurent Monin <geeqie@norz.org>
parents: 1015
diff changeset
591 gtk_accel_map_load(pathl);
3571d85b831a Move some code to new functions, to simplify main().
Laurent Monin <geeqie@norz.org>
parents: 1015
diff changeset
592 g_free(pathl);
3571d85b831a Move some code to new functions, to simplify main().
Laurent Monin <geeqie@norz.org>
parents: 1015
diff changeset
593 g_free(path);
3571d85b831a Move some code to new functions, to simplify main().
Laurent Monin <geeqie@norz.org>
parents: 1015
diff changeset
594 }
3571d85b831a Move some code to new functions, to simplify main().
Laurent Monin <geeqie@norz.org>
parents: 1015
diff changeset
595
3571d85b831a Move some code to new functions, to simplify main().
Laurent Monin <geeqie@norz.org>
parents: 1015
diff changeset
596 static void gtkrc_load(void)
3571d85b831a Move some code to new functions, to simplify main().
Laurent Monin <geeqie@norz.org>
parents: 1015
diff changeset
597 {
3571d85b831a Move some code to new functions, to simplify main().
Laurent Monin <geeqie@norz.org>
parents: 1015
diff changeset
598 gchar *path;
3571d85b831a Move some code to new functions, to simplify main().
Laurent Monin <geeqie@norz.org>
parents: 1015
diff changeset
599 gchar *pathl;
3571d85b831a Move some code to new functions, to simplify main().
Laurent Monin <geeqie@norz.org>
parents: 1015
diff changeset
600
3571d85b831a Move some code to new functions, to simplify main().
Laurent Monin <geeqie@norz.org>
parents: 1015
diff changeset
601 /* If a gtkrc file exists in the rc directory, add it to the
3571d85b831a Move some code to new functions, to simplify main().
Laurent Monin <geeqie@norz.org>
parents: 1015
diff changeset
602 * list of files to be parsed at the end of gtk_init() */
1145
94adf34fe826 Use functions to return directories instead of constants.
Laurent Monin <geeqie@norz.org>
parents: 1089
diff changeset
603 path = g_build_filename(get_rc_dir(), "gtkrc", NULL);
1017
3571d85b831a Move some code to new functions, to simplify main().
Laurent Monin <geeqie@norz.org>
parents: 1015
diff changeset
604 pathl = path_from_utf8(path);
3571d85b831a Move some code to new functions, to simplify main().
Laurent Monin <geeqie@norz.org>
parents: 1015
diff changeset
605 if (access(pathl, R_OK) == 0)
3571d85b831a Move some code to new functions, to simplify main().
Laurent Monin <geeqie@norz.org>
parents: 1015
diff changeset
606 gtk_rc_add_default_file(pathl);
3571d85b831a Move some code to new functions, to simplify main().
Laurent Monin <geeqie@norz.org>
parents: 1015
diff changeset
607 g_free(pathl);
3571d85b831a Move some code to new functions, to simplify main().
Laurent Monin <geeqie@norz.org>
parents: 1015
diff changeset
608 g_free(path);
3571d85b831a Move some code to new functions, to simplify main().
Laurent Monin <geeqie@norz.org>
parents: 1015
diff changeset
609 }
630
e68e998d6c23 An option to save and restore the last path used was added.
Laurent Monin <geeqie@norz.org>
parents: 629
diff changeset
610
739
4d6c3e6aad75 Move code from exit_program_final() to new sync_options_with_current_state().
Laurent Monin <geeqie@norz.org>
parents: 738
diff changeset
611 static void exit_program_final(void)
4d6c3e6aad75 Move code from exit_program_final() to new sync_options_with_current_state().
Laurent Monin <geeqie@norz.org>
parents: 738
diff changeset
612 {
840
4f168cd71913 another try to free layout at exit
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 799
diff changeset
613 LayoutWindow *lw = NULL;
739
4d6c3e6aad75 Move code from exit_program_final() to new sync_options_with_current_state().
Laurent Monin <geeqie@norz.org>
parents: 738
diff changeset
614
1736
7179fa22dc1b load desktop files in idle time
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1735
diff changeset
615 /* make sure that external editors are loaded, we would save incomplete configuration otherwise */
7179fa22dc1b load desktop files in idle time
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1735
diff changeset
616 layout_editors_reload_finish();
7179fa22dc1b load desktop files in idle time
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1735
diff changeset
617
739
4d6c3e6aad75 Move code from exit_program_final() to new sync_options_with_current_state().
Laurent Monin <geeqie@norz.org>
parents: 738
diff changeset
618 remote_close(remote_connection);
4d6c3e6aad75 Move code from exit_program_final() to new sync_options_with_current_state().
Laurent Monin <geeqie@norz.org>
parents: 738
diff changeset
619
4d6c3e6aad75 Move code from exit_program_final() to new sync_options_with_current_state().
Laurent Monin <geeqie@norz.org>
parents: 738
diff changeset
620 collect_manager_flush();
4d6c3e6aad75 Move code from exit_program_final() to new sync_options_with_current_state().
Laurent Monin <geeqie@norz.org>
parents: 738
diff changeset
621
742
e855bb4d882e Pass ConfOptions * to save_options() and load_options().
Laurent Monin <geeqie@norz.org>
parents: 740
diff changeset
622 save_options(options);
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
623 keys_save();
1017
3571d85b831a Move some code to new functions, to simplify main().
Laurent Monin <geeqie@norz.org>
parents: 1015
diff changeset
624 accel_map_save();
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
625
840
4f168cd71913 another try to free layout at exit
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 799
diff changeset
626 if (layout_valid(&lw))
4f168cd71913 another try to free layout at exit
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 799
diff changeset
627 {
4f168cd71913 another try to free layout at exit
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 799
diff changeset
628 layout_free(lw);
4f168cd71913 another try to free layout at exit
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 799
diff changeset
629 }
4f168cd71913 another try to free layout at exit
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 799
diff changeset
630
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
631 gtk_main_quit();
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
632 }
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
633
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
634 static GenericDialog *exit_dialog = NULL;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
635
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
636 static void exit_confirm_cancel_cb(GenericDialog *gd, gpointer data)
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
637 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
638 exit_dialog = NULL;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
639 generic_dialog_close(gd);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
640 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
641
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
642 static void exit_confirm_exit_cb(GenericDialog *gd, gpointer data)
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
643 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
644 exit_dialog = NULL;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
645 generic_dialog_close(gd);
278
79fed35f1650 exit_gqview() renamed to exit_program().
Laurent Monin <geeqie@norz.org>
parents: 254
diff changeset
646 exit_program_final();
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
647 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
648
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
649 static gint exit_confirm_dlg(void)
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
650 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
651 GtkWidget *parent;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
652 LayoutWindow *lw;
288
e675073bcca0 Replace occurences of Geeqie / geeqie by constants defined in main.h.
Laurent Monin <geeqie@norz.org>
parents: 283
diff changeset
653 gchar *msg;
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
654
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
655 if (exit_dialog)
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
656 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
657 gtk_window_present(GTK_WINDOW(exit_dialog->dialog));
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
658 return TRUE;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
659 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
660
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
661 if (!collection_window_modified_exists()) return FALSE;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
662
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
663 parent = NULL;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
664 lw = NULL;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
665 if (layout_valid(&lw))
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
666 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
667 parent = lw->window;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
668 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
669
288
e675073bcca0 Replace occurences of Geeqie / geeqie by constants defined in main.h.
Laurent Monin <geeqie@norz.org>
parents: 283
diff changeset
670 msg = g_strdup_printf("%s - %s", GQ_APPNAME, _("exit"));
e675073bcca0 Replace occurences of Geeqie / geeqie by constants defined in main.h.
Laurent Monin <geeqie@norz.org>
parents: 283
diff changeset
671 exit_dialog = generic_dialog_new(msg,
1174
f809d57aed0c Drop useless wmclass stuff. Gtk will take care of it and as said in the documentation using gtk_window_set_wmclass() is sort of pointless.
Laurent Monin <geeqie@norz.org>
parents: 1148
diff changeset
672 "exit", parent, FALSE,
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
673 exit_confirm_cancel_cb, NULL);
288
e675073bcca0 Replace occurences of Geeqie / geeqie by constants defined in main.h.
Laurent Monin <geeqie@norz.org>
parents: 283
diff changeset
674 g_free(msg);
e675073bcca0 Replace occurences of Geeqie / geeqie by constants defined in main.h.
Laurent Monin <geeqie@norz.org>
parents: 283
diff changeset
675 msg = g_strdup_printf(_("Quit %s"), GQ_APPNAME);
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
676 generic_dialog_add_message(exit_dialog, GTK_STOCK_DIALOG_QUESTION,
288
e675073bcca0 Replace occurences of Geeqie / geeqie by constants defined in main.h.
Laurent Monin <geeqie@norz.org>
parents: 283
diff changeset
677 msg, _("Collections have been modified. Quit anyway?"));
e675073bcca0 Replace occurences of Geeqie / geeqie by constants defined in main.h.
Laurent Monin <geeqie@norz.org>
parents: 283
diff changeset
678 g_free(msg);
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
679 generic_dialog_add_button(exit_dialog, GTK_STOCK_QUIT, NULL, exit_confirm_exit_cb, TRUE);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
680
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
681 gtk_widget_show(exit_dialog->dialog);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
682
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
683 return TRUE;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
684 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
685
1231
13500d2268af added done callback to utilops
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1214
diff changeset
686 static void exit_program_write_metadata_cb(gint success, const gchar *dest_path, gpointer data)
13500d2268af added done callback to utilops
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1214
diff changeset
687 {
13500d2268af added done callback to utilops
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1214
diff changeset
688 if (success) exit_program();
13500d2268af added done callback to utilops
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1214
diff changeset
689 }
13500d2268af added done callback to utilops
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1214
diff changeset
690
278
79fed35f1650 exit_gqview() renamed to exit_program().
Laurent Monin <geeqie@norz.org>
parents: 254
diff changeset
691 void exit_program(void)
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
692 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
693 layout_image_full_screen_stop(NULL);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
694
1586
b8515ea34e58 force the metadata dialog if it was triggered by the menu or the button
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1507
diff changeset
695 if (metadata_write_queue_confirm(FALSE, exit_program_write_metadata_cb, NULL)) return;
1214
1e36edfd2a43 write metadata after timeout, image change or dir change
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1174
diff changeset
696
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
697 if (exit_confirm_dlg()) return;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
698
278
79fed35f1650 exit_gqview() renamed to exit_program().
Laurent Monin <geeqie@norz.org>
parents: 254
diff changeset
699 exit_program_final();
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
700 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
701
2184
9cdebd070874 Trim trailing white spaces.
Laurent Monin <zas@norz.org>
parents: 2077
diff changeset
702 /* This code is supposed to handle situation when a file mmaped by image_loader
1266
32dd74dc636c added SIGBUS handler
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1231
diff changeset
703 * or by exif loader is truncated by some other process.
32dd74dc636c added SIGBUS handler
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1231
diff changeset
704 * This is probably not completely correct according to posix, because
32dd74dc636c added SIGBUS handler
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1231
diff changeset
705 * mmap is not in the list of calls that can be used safely in signal handler,
32dd74dc636c added SIGBUS handler
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1231
diff changeset
706 * but anyway, the handler is called in situation when the application would
32dd74dc636c added SIGBUS handler
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1231
diff changeset
707 * crash otherwise.
32dd74dc636c added SIGBUS handler
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1231
diff changeset
708 * Ideas for improvement are welcome ;)
32dd74dc636c added SIGBUS handler
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1231
diff changeset
709 */
32dd74dc636c added SIGBUS handler
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1231
diff changeset
710 /* FIXME: this probably needs some better ifdefs. Please report any compilation problems */
32dd74dc636c added SIGBUS handler
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1231
diff changeset
711
1777
f5c34cae85a1 Some systems do not have SA_SIGINFO (siginfo_t), like GNU/Hurd, so just test if defined or not. Patch by Michal ÄŒihaÅ™ (Bug ID: 2894271).
Laurent Monin <geeqie@norz.org>
parents: 1772
diff changeset
712 #if defined(SIGBUS) && defined(SA_SIGINFO)
1266
32dd74dc636c added SIGBUS handler
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1231
diff changeset
713 static void sigbus_handler_cb(int signum, siginfo_t *info, void *context)
32dd74dc636c added SIGBUS handler
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1231
diff changeset
714 {
32dd74dc636c added SIGBUS handler
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1231
diff changeset
715 unsigned long pagesize = sysconf(_SC_PAGE_SIZE);
32dd74dc636c added SIGBUS handler
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1231
diff changeset
716 DEBUG_1("SIGBUS %p", info->si_addr);
32dd74dc636c added SIGBUS handler
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1231
diff changeset
717 mmap((void *)(((unsigned long)info->si_addr / pagesize) * pagesize), pagesize, PROT_READ | PROT_WRITE, MAP_FIXED | MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
32dd74dc636c added SIGBUS handler
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1231
diff changeset
718 }
32dd74dc636c added SIGBUS handler
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1231
diff changeset
719 #endif
32dd74dc636c added SIGBUS handler
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1231
diff changeset
720
32dd74dc636c added SIGBUS handler
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1231
diff changeset
721 static void setup_sigbus_handler(void)
32dd74dc636c added SIGBUS handler
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1231
diff changeset
722 {
1777
f5c34cae85a1 Some systems do not have SA_SIGINFO (siginfo_t), like GNU/Hurd, so just test if defined or not. Patch by Michal ÄŒihaÅ™ (Bug ID: 2894271).
Laurent Monin <geeqie@norz.org>
parents: 1772
diff changeset
723 #if defined(SIGBUS) && defined(SA_SIGINFO)
1266
32dd74dc636c added SIGBUS handler
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1231
diff changeset
724 struct sigaction sigbus_action;
32dd74dc636c added SIGBUS handler
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1231
diff changeset
725 sigfillset(&sigbus_action.sa_mask);
32dd74dc636c added SIGBUS handler
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1231
diff changeset
726 sigbus_action.sa_sigaction = sigbus_handler_cb;
32dd74dc636c added SIGBUS handler
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1231
diff changeset
727 sigbus_action.sa_flags = SA_SIGINFO;
32dd74dc636c added SIGBUS handler
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1231
diff changeset
728
32dd74dc636c added SIGBUS handler
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1231
diff changeset
729 sigaction(SIGBUS, &sigbus_action, NULL);
32dd74dc636c added SIGBUS handler
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1231
diff changeset
730 #endif
32dd74dc636c added SIGBUS handler
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1231
diff changeset
731 }
32dd74dc636c added SIGBUS handler
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1231
diff changeset
732
1000
07f6093c1c1a For the sake of consistency, use glib basic types everywhere.
Laurent Monin <geeqie@norz.org>
parents: 995
diff changeset
733 gint main(gint argc, gchar *argv[])
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
734 {
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
735 CollectionData *first_collection = NULL;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
736 gchar *buf;
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 648
diff changeset
737 CollectionData *cd = NULL;
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
738
1015
8ae2996ac904 run image loader in separate thread
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1000
diff changeset
739 #ifdef HAVE_GTHREAD
1346
b3378273091e No space between function name and first parenthesis, it eases greping (see CODING).
Laurent Monin <geeqie@norz.org>
parents: 1334
diff changeset
740 g_thread_init(NULL);
1020
799621e50c6c improved thread support in image loader
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1019
diff changeset
741 gdk_threads_init();
799621e50c6c improved thread support in image loader
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1019
diff changeset
742 gdk_threads_enter();
1872
1160a9de93c2 fixed using DEBUG_N from multiple threads
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1802
diff changeset
743
1015
8ae2996ac904 run image loader in separate thread
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1000
diff changeset
744 #endif
2185
c14a1d8e6aa4 Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents: 2184
diff changeset
745
509
64af3fde3b35 Move get_exec_time() to debug.{c,h}.
Laurent Monin <geeqie@norz.org>
parents: 507
diff changeset
746 /* init execution time counter (debug only) */
64af3fde3b35 Move get_exec_time() to debug.{c,h}.
Laurent Monin <geeqie@norz.org>
parents: 507
diff changeset
747 init_exec_time();
442
f698b737556b Big whitespaces cleanup:
Laurent Monin <geeqie@norz.org>
parents: 433
diff changeset
748
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
749 /* setup locale, i18n */
2034
9297985567b5 use accessor functions
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 2021
diff changeset
750 setlocale(LC_ALL, "");
686
9fda5376ef54 configure.in was rewritten:
Petr Ostadal <postadal@suse.cz>
parents: 684
diff changeset
751
687
4c59a9b86597 Fix spurious end of line introduced in revision 780.
Laurent Monin <geeqie@norz.org>
parents: 686
diff changeset
752 #ifdef ENABLE_NLS
4c59a9b86597 Fix spurious end of line introduced in revision 780.
Laurent Monin <geeqie@norz.org>
parents: 686
diff changeset
753 bindtextdomain(PACKAGE, GQ_LOCALEDIR);
10
9e3d94be3d85 ########
John Ellis <johne@verizon.net>
parents: 9
diff changeset
754 bind_textdomain_codeset(PACKAGE, "UTF-8");
9e3d94be3d85 ########
John Ellis <johne@verizon.net>
parents: 9
diff changeset
755 textdomain(PACKAGE);
686
9fda5376ef54 configure.in was rewritten:
Petr Ostadal <postadal@suse.cz>
parents: 684
diff changeset
756 #endif
995
401cd18f8d38 Whitespaces cleanup.
Laurent Monin <geeqie@norz.org>
parents: 902
diff changeset
757
1288
01a4a8674c8b use metadata_read_* functions where possible
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1284
diff changeset
758 exif_init();
2185
c14a1d8e6aa4 Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents: 2184
diff changeset
759
2196
7a9bff812ba3 Adding support for lua scripting
Klaus Ethgen <Klaus@Ethgen.de>
parents: 1802
diff changeset
760 #ifdef HAVE_LUA
7a9bff812ba3 Adding support for lua scripting
Klaus Ethgen <Klaus@Ethgen.de>
parents: 1802
diff changeset
761 lua_init();
7a9bff812ba3 Adding support for lua scripting
Klaus Ethgen <Klaus@Ethgen.de>
parents: 1802
diff changeset
762 #endif
7a9bff812ba3 Adding support for lua scripting
Klaus Ethgen <Klaus@Ethgen.de>
parents: 1802
diff changeset
763
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
764 /* setup random seed for random slideshow */
442
f698b737556b Big whitespaces cleanup:
Laurent Monin <geeqie@norz.org>
parents: 433
diff changeset
765 srand(time(NULL));
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
766
1266
32dd74dc636c added SIGBUS handler
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1231
diff changeset
767 setup_sigbus_handler();
32dd74dc636c added SIGBUS handler
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1231
diff changeset
768
793
074d59c7fa2f used new notification in cache_maint
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 786
diff changeset
769 /* register global notify functions */
074d59c7fa2f used new notification in cache_maint
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 786
diff changeset
770 file_data_register_notify_func(cache_notify_cb, NULL, NOTIFY_PRIORITY_HIGH);
877
e5d1fa4dc807 refresh thumbnails on file change
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 840
diff changeset
771 file_data_register_notify_func(thumb_notify_cb, NULL, NOTIFY_PRIORITY_HIGH);
1294
892eeb2fce22 histogram caching
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1288
diff changeset
772 file_data_register_notify_func(histogram_notify_cb, NULL, NOTIFY_PRIORITY_HIGH);
799
e8085600fd69 use the new notification for collections
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 793
diff changeset
773 file_data_register_notify_func(collect_manager_notify_cb, NULL, NOTIFY_PRIORITY_LOW);
1720
3efe2125cdcc remove deleted files from metadata queue
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1711
diff changeset
774 file_data_register_notify_func(metadata_notify_cb, NULL, NOTIFY_PRIORITY_LOW);
2185
c14a1d8e6aa4 Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents: 2184
diff changeset
775
793
074d59c7fa2f used new notification in cache_maint
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 786
diff changeset
776
1313
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
777 gtkrc_load();
1735
d60ff6f78f81 added messages for debugging startup time
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1733
diff changeset
778
d60ff6f78f81 added messages for debugging startup time
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1733
diff changeset
779 parse_command_line_for_debug_option(argc, argv);
2184
9cdebd070874 Trim trailing white spaces.
Laurent Monin <zas@norz.org>
parents: 2077
diff changeset
780 DEBUG_1("%s main: gtk_init", get_exec_time());
2077
034e50486d27 added autoconf test for clutter
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 2035
diff changeset
781 #ifdef HAVE_CLUTTER
1772
37b71424a6a5 check gtk_clutter_init return value
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1764
diff changeset
782 if (gtk_clutter_init(&argc, &argv) != CLUTTER_INIT_SUCCESS)
37b71424a6a5 check gtk_clutter_init return value
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1764
diff changeset
783 {
37b71424a6a5 check gtk_clutter_init return value
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1764
diff changeset
784 log_printf("Can't initialize clutter-gtk.\n");
37b71424a6a5 check gtk_clutter_init return value
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1764
diff changeset
785 exit(1);
37b71424a6a5 check gtk_clutter_init return value
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1764
diff changeset
786 }
1604
934646ea4af8 added GPS map support - patch by Colin Clark
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1586
diff changeset
787 #else
1313
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
788 gtk_init(&argc, &argv);
1604
934646ea4af8 added GPS map support - patch by Colin Clark
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1586
diff changeset
789 #endif
1313
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
790
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
791 if (gtk_major_version < GTK_MAJOR_VERSION ||
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
792 (gtk_major_version == GTK_MAJOR_VERSION && gtk_minor_version < GTK_MINOR_VERSION) )
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
793 {
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
794 log_printf("!!! This is a friendly warning.\n");
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
795 log_printf("!!! The version of GTK+ in use now is older than when %s was compiled.\n", GQ_APPNAME);
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
796 log_printf("!!! compiled with GTK+-%d.%d\n", GTK_MAJOR_VERSION, GTK_MINOR_VERSION);
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
797 log_printf("!!! running with GTK+-%d.%d\n", gtk_major_version, gtk_minor_version);
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
798 log_printf("!!! %s may quit unexpectedly with a relocation error.\n", GQ_APPNAME);
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
799 }
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
800
2184
9cdebd070874 Trim trailing white spaces.
Laurent Monin <zas@norz.org>
parents: 2077
diff changeset
801 DEBUG_1("%s main: pixbuf_inline_register_stock_icons", get_exec_time());
1334
89c9db0e3258 create toolbar from ui_manager
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1321
diff changeset
802 pixbuf_inline_register_stock_icons();
89c9db0e3258 create toolbar from ui_manager
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1321
diff changeset
803
2184
9cdebd070874 Trim trailing white spaces.
Laurent Monin <zas@norz.org>
parents: 2077
diff changeset
804 DEBUG_1("%s main: setting default options before commandline handling", get_exec_time());
2013
512ff8b8f325 initialize default options before commandline parsing
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1937
diff changeset
805 options = init_options(NULL);
512ff8b8f325 initialize default options before commandline parsing
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1937
diff changeset
806 setup_default_options(options);
512ff8b8f325 initialize default options before commandline parsing
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1937
diff changeset
807
2184
9cdebd070874 Trim trailing white spaces.
Laurent Monin <zas@norz.org>
parents: 2077
diff changeset
808 DEBUG_1("%s main: parse_command_line", get_exec_time());
1313
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
809 parse_command_line(argc, argv);
378
5651f2073a71 Parse command line for --debug option as soon as possible and allow
Laurent Monin <geeqie@norz.org>
parents: 367
diff changeset
810
2184
9cdebd070874 Trim trailing white spaces.
Laurent Monin <zas@norz.org>
parents: 2077
diff changeset
811 DEBUG_1("%s main: mkdir_if_not_exists", get_exec_time());
1462
027c95eeb58a initialization clean-up
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1437
diff changeset
812 /* these functions don't depend on config file */
027c95eeb58a initialization clean-up
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1437
diff changeset
813 mkdir_if_not_exists(get_rc_dir());
027c95eeb58a initialization clean-up
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1437
diff changeset
814 mkdir_if_not_exists(get_collections_dir());
027c95eeb58a initialization clean-up
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1437
diff changeset
815 mkdir_if_not_exists(get_thumbnails_cache_dir());
027c95eeb58a initialization clean-up
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1437
diff changeset
816 mkdir_if_not_exists(get_metadata_cache_dir());
027c95eeb58a initialization clean-up
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1437
diff changeset
817
1640
0c3ee4176c00 do not install helper scripts into /usr/bin
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1620
diff changeset
818 setup_env_path();
0c3ee4176c00 do not install helper scripts into /usr/bin
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1620
diff changeset
819
1462
027c95eeb58a initialization clean-up
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1437
diff changeset
820 keys_load();
027c95eeb58a initialization clean-up
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1437
diff changeset
821 accel_map_load();
027c95eeb58a initialization clean-up
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1437
diff changeset
822
027c95eeb58a initialization clean-up
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1437
diff changeset
823 /* restore session from the config file */
027c95eeb58a initialization clean-up
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1437
diff changeset
824
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
825
2184
9cdebd070874 Trim trailing white spaces.
Laurent Monin <zas@norz.org>
parents: 2077
diff changeset
826 DEBUG_1("%s main: load_options", get_exec_time());
1463
7031da014d97 added function to reload external editors at any time
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1462
diff changeset
827 if (!load_options(options))
7031da014d97 added function to reload external editors at any time
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1462
diff changeset
828 {
7031da014d97 added function to reload external editors at any time
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1462
diff changeset
829 /* load_options calls these functions after it parses global options, we have to call it here if it fails */
7031da014d97 added function to reload external editors at any time
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1462
diff changeset
830 filter_add_defaults();
2184
9cdebd070874 Trim trailing white spaces.
Laurent Monin <zas@norz.org>
parents: 2077
diff changeset
831 filter_rebuild();
1463
7031da014d97 added function to reload external editors at any time
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1462
diff changeset
832 }
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
833
1462
027c95eeb58a initialization clean-up
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1437
diff changeset
834 /* handle missing config file and commandline additions*/
2184
9cdebd070874 Trim trailing white spaces.
Laurent Monin <zas@norz.org>
parents: 2077
diff changeset
835 if (!layout_window_list)
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
836 {
1313
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
837 /* broken or no config file */
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
838 layout_new_from_config(NULL, NULL, TRUE);
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
839 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
840
1736
7179fa22dc1b load desktop files in idle time
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1735
diff changeset
841 layout_editors_reload_start();
7179fa22dc1b load desktop files in idle time
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1735
diff changeset
842
1313
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
843 if (command_line->collection_list && !command_line->startup_command_line_collection)
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
844 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
845 GList *work;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
846
1313
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
847 work = command_line->collection_list;
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
848 while (work)
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
849 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
850 CollectWindow *cw;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
851 const gchar *path;
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
852
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
853 path = work->data;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
854 work = work->next;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
855
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
856 cw = collection_window_new(path);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
857 if (!first_collection && cw) first_collection = cw->cd;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
858 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
859 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
860
1313
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
861 if (command_line->cmd_list ||
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
862 (command_line->startup_command_line_collection && command_line->collection_list))
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
863 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
864 GList *work;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
865
1313
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
866 if (command_line->startup_command_line_collection)
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
867 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
868 CollectWindow *cw;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
869
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
870 cw = collection_window_new("");
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
871 cd = cw->cd;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
872 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
873 else
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
874 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
875 cd = collection_new(""); /* if we pass NULL, untitled counter is falsely increm. */
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
876 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
877
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
878 g_free(cd->path);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
879 cd->path = NULL;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
880 g_free(cd->name);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
881 cd->name = g_strdup(_("Command line"));
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
882
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
883 collection_path_changed(cd);
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
884
1313
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
885 work = command_line->cmd_list;
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
886 while (work)
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
887 {
1620
35ba896e7acb fixed incorrect type conversion
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1604
diff changeset
888 collection_add(cd, (FileData *)work->data, FALSE);
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
889 work = work->next;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
890 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
891
1313
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
892 work = command_line->collection_list;
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
893 while (work)
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
894 {
358
a73c613430a9 Use flags for collection_load*().
Laurent Monin <geeqie@norz.org>
parents: 354
diff changeset
895 collection_load(cd, (gchar *)work->data, COLLECTION_LOAD_APPEND);
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
896 work = work->next;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
897 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
898
1313
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
899 if (cd->list) layout_image_set_collection(NULL, cd, cd->list->data);
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
900
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
901 /* mem leak, we never unref this collection when !startup_command_line_collection
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
902 * (the image view of the main window does not hold a ref to the collection)
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
903 * this is sort of unavoidable, for if it did hold a ref, next/back
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
904 * may not work as expected when closing collection windows.
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
905 *
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
906 * collection_unref(cd);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
907 */
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
908
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
909 }
1313
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
910 else if (first_collection)
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
911 {
1313
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
912 layout_image_set_collection(NULL, first_collection,
29ff0de0a67e enabled commandline again
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1309
diff changeset
913 collection_get_first(first_collection));
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
914 }
614
e477b53a6046 image_osd_get() and image_osd_set() now uses flags.
Laurent Monin <geeqie@norz.org>
parents: 586
diff changeset
915
1145
94adf34fe826 Use functions to return directories instead of constants.
Laurent Monin <geeqie@norz.org>
parents: 1089
diff changeset
916 buf = g_build_filename(get_rc_dir(), ".command", NULL);
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 648
diff changeset
917 remote_connection = remote_server_init(buf, cd);
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
918 g_free(buf);
2185
c14a1d8e6aa4 Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents: 2184
diff changeset
919
2184
9cdebd070874 Trim trailing white spaces.
Laurent Monin <zas@norz.org>
parents: 2077
diff changeset
920 DEBUG_1("%s main: gtk_main", get_exec_time());
512
0896f486ec6f Remove whitespace between function name and first parenthesis for the sake of consistency.
Laurent Monin <geeqie@norz.org>
parents: 509
diff changeset
921 gtk_main();
1020
799621e50c6c improved thread support in image loader
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1019
diff changeset
922 #ifdef HAVE_GTHREAD
799621e50c6c improved thread support in image loader
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1019
diff changeset
923 gdk_threads_leave();
799621e50c6c improved thread support in image loader
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1019
diff changeset
924 #endif
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
925 return 0;
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
926 }
1055
4bbdfab3c89a Adding a vim modeline to all files - patch by Klaus Ethgen
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1022
diff changeset
927 /* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */