annotate src/main.c @ 380:5afe77bb563a

Introduce a new struct ViewDir to handle directory views common data. Specific data is now in ViewDirInfoList and ViewDirInfoTree. Type of directory view can be specified with enum DirViewType. This is saved to rc file as layout.dir_view_type, which replace layout.view_as_tree. Code was modified to reflect these changes. This is a first to move to merge common code of view_dir_list.c and view_dir_tree.c and ease the introduction of new types of directory view.
author zas_
date Wed, 16 Apr 2008 14:45:22 +0000
parents a430eb2e3c95
children 0226daf8c30b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1 /*
196
f6e307c7bad6 rename GQview -> Geeqie over the code
nadvornik
parents: 195
diff changeset
2 * Geeqie
79
528e3432e0c0 Thu Oct 19 07:23:37 2006 John Ellis <johne@verizon.net>
gqview
parents: 76
diff changeset
3 * (C) 2006 John Ellis
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
4 *
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
5 * Author: John Ellis
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
6 *
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
7 * This software is released under the GNU General Public License (GNU GPL).
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
8 * Please read the included file COPYING for more information.
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
9 * This software comes with no warranty of any kind, use at your own risk!
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
10 */
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
11
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
12
281
9995c5fb202a gqview.h -> main.h
zas_
parents: 279
diff changeset
13 #include "main.h"
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
14
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
15 #include "cache.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
16 #include "collect.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
17 #include "collect-io.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
18 #include "dnd.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
19 #include "editors.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
20 #include "filelist.h"
354
5c82855feba7 Add a button to reset fullscreen info string to default value.
zas_
parents: 341
diff changeset
21 #include "fullscreen.h"
218
f4a0555794a9 Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents: 214
diff changeset
22 #include "image-overlay.h"
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
23 #include "img-view.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
24 #include "layout.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
25 #include "layout_image.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
26 #include "menu.h"
91
d063f97503b7 Wed Nov 1 11:39:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 81
diff changeset
27 #include "pixbuf_util.h"
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
28 #include "preferences.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
29 #include "rcfile.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
30 #include "remote.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
31 #include "similar.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
32 #include "slideshow.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
33 #include "utilops.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
34 #include "ui_bookmark.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
35 #include "ui_help.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
36 #include "ui_fileops.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
37 #include "ui_tabcomp.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
38 #include "ui_utildlg.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
39
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
40 #include <gdk/gdkkeysyms.h> /* for keyboard values */
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
41
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
42
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
43 #include <math.h>
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
44
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
45
279
5cd386db1e6c gqview_remote -> remote_connection
zas_
parents: 278
diff changeset
46 static RemoteConnection *remote_connection = NULL;
5cd386db1e6c gqview_remote -> remote_connection
zas_
parents: 278
diff changeset
47 static CollectionData *command_collection = NULL;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
48
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
49
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
50 /*
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
51 *-----------------------------------------------------------------------------
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
52 * misc (public)
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
53 *-----------------------------------------------------------------------------
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
54 */
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
55
289
6a7298988a7a Simplify and unify gtk_window creation with the help of
zas_
parents: 288
diff changeset
56 GtkWidget *window_new(GtkWindowType type, const gchar *name, const gchar *icon,
6a7298988a7a Simplify and unify gtk_window creation with the help of
zas_
parents: 288
diff changeset
57 const gchar *icon_file, const gchar *subtitle)
6a7298988a7a Simplify and unify gtk_window creation with the help of
zas_
parents: 288
diff changeset
58 {
6a7298988a7a Simplify and unify gtk_window creation with the help of
zas_
parents: 288
diff changeset
59 gchar *title;
6a7298988a7a Simplify and unify gtk_window creation with the help of
zas_
parents: 288
diff changeset
60 GtkWidget *window;
6a7298988a7a Simplify and unify gtk_window creation with the help of
zas_
parents: 288
diff changeset
61
6a7298988a7a Simplify and unify gtk_window creation with the help of
zas_
parents: 288
diff changeset
62 window = gtk_window_new(type);
6a7298988a7a Simplify and unify gtk_window creation with the help of
zas_
parents: 288
diff changeset
63 if (!window) return NULL;
6a7298988a7a Simplify and unify gtk_window creation with the help of
zas_
parents: 288
diff changeset
64
6a7298988a7a Simplify and unify gtk_window creation with the help of
zas_
parents: 288
diff changeset
65 if (subtitle)
6a7298988a7a Simplify and unify gtk_window creation with the help of
zas_
parents: 288
diff changeset
66 {
6a7298988a7a Simplify and unify gtk_window creation with the help of
zas_
parents: 288
diff changeset
67 title = g_strdup_printf("%s - %s", subtitle, GQ_APPNAME);
6a7298988a7a Simplify and unify gtk_window creation with the help of
zas_
parents: 288
diff changeset
68 }
6a7298988a7a Simplify and unify gtk_window creation with the help of
zas_
parents: 288
diff changeset
69 else
6a7298988a7a Simplify and unify gtk_window creation with the help of
zas_
parents: 288
diff changeset
70 {
6a7298988a7a Simplify and unify gtk_window creation with the help of
zas_
parents: 288
diff changeset
71 title = g_strdup_printf("%s", GQ_APPNAME);
6a7298988a7a Simplify and unify gtk_window creation with the help of
zas_
parents: 288
diff changeset
72 }
6a7298988a7a Simplify and unify gtk_window creation with the help of
zas_
parents: 288
diff changeset
73
6a7298988a7a Simplify and unify gtk_window creation with the help of
zas_
parents: 288
diff changeset
74 gtk_window_set_title(GTK_WINDOW(window), title);
6a7298988a7a Simplify and unify gtk_window creation with the help of
zas_
parents: 288
diff changeset
75 g_free(title);
6a7298988a7a Simplify and unify gtk_window creation with the help of
zas_
parents: 288
diff changeset
76
6a7298988a7a Simplify and unify gtk_window creation with the help of
zas_
parents: 288
diff changeset
77 window_set_icon(window, icon, icon_file);
6a7298988a7a Simplify and unify gtk_window creation with the help of
zas_
parents: 288
diff changeset
78 gtk_window_set_role(GTK_WINDOW(window), name);
6a7298988a7a Simplify and unify gtk_window creation with the help of
zas_
parents: 288
diff changeset
79 gtk_window_set_wmclass(GTK_WINDOW(window), name, GQ_WMCLASS);
6a7298988a7a Simplify and unify gtk_window creation with the help of
zas_
parents: 288
diff changeset
80
6a7298988a7a Simplify and unify gtk_window creation with the help of
zas_
parents: 288
diff changeset
81 return window;
6a7298988a7a Simplify and unify gtk_window creation with the help of
zas_
parents: 288
diff changeset
82 }
6a7298988a7a Simplify and unify gtk_window creation with the help of
zas_
parents: 288
diff changeset
83
91
d063f97503b7 Wed Nov 1 11:39:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 81
diff changeset
84 void window_set_icon(GtkWidget *window, const gchar *icon, const gchar *file)
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
85 {
91
d063f97503b7 Wed Nov 1 11:39:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 81
diff changeset
86 if (!icon && !file) icon = PIXBUF_INLINE_ICON;
d063f97503b7 Wed Nov 1 11:39:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 81
diff changeset
87
d063f97503b7 Wed Nov 1 11:39:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 81
diff changeset
88 if (icon)
d063f97503b7 Wed Nov 1 11:39:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 81
diff changeset
89 {
d063f97503b7 Wed Nov 1 11:39:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 81
diff changeset
90 GdkPixbuf *pixbuf;
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
91
91
d063f97503b7 Wed Nov 1 11:39:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 81
diff changeset
92 pixbuf = pixbuf_inline(icon);
d063f97503b7 Wed Nov 1 11:39:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 81
diff changeset
93 if (pixbuf)
d063f97503b7 Wed Nov 1 11:39:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 81
diff changeset
94 {
d063f97503b7 Wed Nov 1 11:39:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 81
diff changeset
95 gtk_window_set_icon(GTK_WINDOW(window), pixbuf);
d063f97503b7 Wed Nov 1 11:39:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 81
diff changeset
96 g_object_unref(pixbuf);
d063f97503b7 Wed Nov 1 11:39:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 81
diff changeset
97 }
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
98 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
99 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
100 {
91
d063f97503b7 Wed Nov 1 11:39:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 81
diff changeset
101 gtk_window_set_icon_from_file(GTK_WINDOW(window), file, NULL);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
102 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
103 }
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
104
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
105 gint window_maximized(GtkWidget *window)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
106 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
107 GdkWindowState state;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
108
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
109 if (!window || !window->window) return FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
110
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
111 state = gdk_window_get_state(window->window);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
112 return (state & GDK_WINDOW_STATE_MAXIMIZED);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
113 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
114
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
115 gdouble get_zoom_increment(void)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
116 {
334
df868b947aa0 Rename image-related options.
zas_
parents: 333
diff changeset
117 return ((options->image.zoom_increment != 0) ? (gdouble)options->image.zoom_increment / 10.0 : 1.0);
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
118 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
119
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
120 /*
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
121 *-----------------------------------------------------------------------------
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
122 * Open browser with the help Documentation
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
123 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
124 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
125
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
126 static gchar *command_result(const gchar *binary, const gchar *command)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
127 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
128 gchar *result = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
129 FILE *f;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
130 char buf[2048];
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
131 int l;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
132
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
133 if (!binary) return NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
134 if (!file_in_path(binary)) return NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
135
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
136 if (!command) return g_strdup(binary);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
137 if (command[0] == '!') return g_strdup(command + 1);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
138
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
139 f = popen(command, "r");
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
140 if (!f) return NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
141
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
142 while ((l = fread(buf, sizeof(char), sizeof(buf), f)) > 0)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
143 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
144 if (!result)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
145 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
146 int n = 0;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
147
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
148 while (n < l && buf[n] != '\n' && buf[n] != '\r') n++;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
149 if (n > 0) result = g_strndup(buf, n);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
150 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
151 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
152
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
153 pclose(f);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
154
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
155 return result;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
156 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
157
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
158 static void help_browser_command(const gchar *command, const gchar *path)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
159 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
160 gchar *result;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
161 gchar *buf;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
162 gchar *begin;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
163 gchar *end;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
164
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
165 if (!command || !path) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
166
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
167 if (debug) printf("Help command pre \"%s\", \"%s\"\n", command, path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
168
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
169 buf = g_strdup(command);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
170 begin = strstr(buf, "%s");
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
171 if (begin)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
172 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
173 *begin = '\0';
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
174 end = begin + 2;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
175 begin = buf;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
176
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
177 result = g_strdup_printf("%s%s%s &", begin, path, end);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
178 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
179 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
180 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
181 result = g_strdup_printf("%s \"%s\" &", command, path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
182 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
183 g_free(buf);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
184
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
185 if (debug) printf("Help command post [%s]\n", result);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
186
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
187 system(result);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
188
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
189 g_free(result);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
190 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
191
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
192 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
193 * each set of 2 strings is one browser:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
194 * the 1st is the binary to look for in the path
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
195 * the 2nd has 3 capabilities:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
196 * NULL exec binary with html file path as command line
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
197 * string exec string and use results for command line
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
198 * !string use text following ! as command line, replacing optional %s with html file path
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
199 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
200 static gchar *html_browsers[] =
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
201 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
202 /* Redhat has a nifty htmlview script to start the user's preferred browser */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
203 "htmlview", NULL,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
204 /* GNOME 2 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
205 "gconftool-2", "gconftool-2 -g /desktop/gnome/url-handlers/http/command",
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
206 /* KDE */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
207 "kfmclient", "!kfmclient exec \"%s\"",
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
208 /* use fallbacks */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
209 "firefox", NULL,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
210 "mozilla", NULL,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
211 "konqueror", NULL,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
212 "netscape", NULL,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
213 NULL, NULL
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
214 };
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
215
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
216 static void help_browser_run(void)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
217 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
218 gchar *result = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
219 gint i;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
220
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
221 i = 0;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
222 while (!result && html_browsers[i])
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
223 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
224 result = command_result(html_browsers[i], html_browsers[i+1]);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
225 i += 2;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
226 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
227
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
228 if (!result)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
229 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
230 printf("Unable to detect an installed browser.\n");
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
231 return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
232 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
233
283
e213fb025621 GQVIEW_* -> GQ_*
zas_
parents: 281
diff changeset
234 help_browser_command(result, GQ_HTMLDIR "/index.html");
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
235
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
236 g_free(result);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
237 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
238
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
239 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
240 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
241 * help window
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
242 *-----------------------------------------------------------------------------
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
243 */
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
244
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
245 static GtkWidget *help_window = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
246
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
247 static void help_window_destroy_cb(GtkWidget *window, gpointer data)
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
248 {
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
249 help_window = NULL;
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
250 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
251
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
252 void help_window_show(const gchar *key)
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
253 {
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
254 if (key && strcmp(key, "html_contents") == 0)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
255 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
256 help_browser_run();
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
257 return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
258 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
259
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
260 if (help_window)
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
261 {
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
262 gtk_window_present(GTK_WINDOW(help_window));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
263 if (key) help_window_set_key(help_window, key);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
264 return;
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
265 }
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
266
288
d1f74154463e Replace occurences of Geeqie / geeqie by constants defined in main.h.
zas_
parents: 283
diff changeset
267 {
d1f74154463e Replace occurences of Geeqie / geeqie by constants defined in main.h.
zas_
parents: 283
diff changeset
268 gchar *title = g_strdup_printf("%s - %s", _("Help"), GQ_APPNAME);
d1f74154463e Replace occurences of Geeqie / geeqie by constants defined in main.h.
zas_
parents: 283
diff changeset
269 help_window = help_window_new(title, GQ_WMCLASS, "help",
283
e213fb025621 GQVIEW_* -> GQ_*
zas_
parents: 281
diff changeset
270 GQ_HELPDIR "/README", key);
288
d1f74154463e Replace occurences of Geeqie / geeqie by constants defined in main.h.
zas_
parents: 283
diff changeset
271 g_free(title);
d1f74154463e Replace occurences of Geeqie / geeqie by constants defined in main.h.
zas_
parents: 283
diff changeset
272 }
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
273 g_signal_connect(G_OBJECT(help_window), "destroy",
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
274 G_CALLBACK(help_window_destroy_cb), NULL);
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
275 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
276
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
277
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
278 /*
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
279 *-----------------------------------------------------------------------------
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
280 * keyboard functions
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
281 *-----------------------------------------------------------------------------
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
282 */
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
283
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
284 void keyboard_scroll_calc(gint *x, gint *y, GdkEventKey *event)
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
285 {
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
286 static gint delta = 0;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
287 static guint32 time_old = 0;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
288 static guint keyval_old = 0;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
289
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
290 if (event->state & GDK_CONTROL_MASK)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
291 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
292 if (*x < 0) *x = G_MININT / 2;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
293 if (*x > 0) *x = G_MAXINT / 2;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
294 if (*y < 0) *y = G_MININT / 2;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
295 if (*y > 0) *y = G_MAXINT / 2;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
296
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
297 return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
298 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
299
318
b16b9b8979e5 Add a new struct ConfOptions to handle options.
zas_
parents: 289
diff changeset
300 if (options->progressive_key_scrolling)
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
301 {
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
302 guint32 time_diff;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
303
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
304 time_diff = event->time - time_old;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
305
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
306 /* key pressed within 125ms ? (1/8 second) */
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
307 if (time_diff > 125 || event->keyval != keyval_old) delta = 0;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
308
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
309 time_old = event->time;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
310 keyval_old = event->keyval;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
311
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
312 delta += 2;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
313 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
314 else
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
315 {
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
316 delta = 8;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
317 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
318
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
319 *x = *x * delta;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
320 *y = *y * delta;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
321 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
322
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
323
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
324 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
325 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
326 * remote functions
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
327 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
328 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
329
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
330 static void gr_image_next(const gchar *text, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
331 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
332 layout_image_next(NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
333 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
334
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
335 static void gr_image_prev(const gchar *text, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
336 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
337 layout_image_prev(NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
338 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
339
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
340 static void gr_image_first(const gchar *text, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
341 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
342 layout_image_first(NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
343 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
344
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
345 static void gr_image_last(const gchar *text, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
346 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
347 layout_image_last(NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
348 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
349
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
350 static void gr_fullscreen_toggle(const gchar *text, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
351 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
352 layout_image_full_screen_toggle(NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
353 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
354
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
355 static void gr_fullscreen_start(const gchar *text, gpointer data)
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
356 {
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
357 layout_image_full_screen_start(NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
358 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
359
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
360 static void gr_fullscreen_stop(const gchar *text, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
361 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
362 layout_image_full_screen_stop(NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
363 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
364
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
365 static void gr_slideshow_start_rec(const gchar *text, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
366 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
367 GList *list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
368
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
369 list = path_list_recursive(text);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
370 if (!list) return;
214
c0e9aac4c7bf Comment out forgotten debugging code.
zas_
parents: 196
diff changeset
371 //printf("length: %d\n", g_list_length(list));
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
372 layout_image_slideshow_stop(NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
373 layout_image_slideshow_start_from_list(NULL, list);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
374 }
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
375
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
376 static void gr_slideshow_toggle(const gchar *text, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
377 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
378 layout_image_slideshow_toggle(NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
379 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
380
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
381 static void gr_slideshow_start(const gchar *text, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
382 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
383 layout_image_slideshow_start(NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
384 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
385
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
386 static void gr_slideshow_stop(const gchar *text, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
387 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
388 layout_image_slideshow_stop(NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
389 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
390
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
391 static void gr_slideshow_delay(const gchar *text, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
392 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
393 gdouble n;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
394
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
395 n = strtod(text, NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
396 if (n < SLIDESHOW_MIN_SECONDS || n > SLIDESHOW_MAX_SECONDS)
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
397 {
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
398 gchar *buf;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
399
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
400 buf = g_strdup_printf("Remote slideshow delay out of range (%.1f to %.1f)\n",
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
401 SLIDESHOW_MIN_SECONDS, SLIDESHOW_MAX_SECONDS);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
402 print_term(buf);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
403 g_free(buf);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
404
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
405 return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
406 }
326
509b84801d66 Rename slideshow options.
zas_
parents: 322
diff changeset
407 options->slideshow.delay = (gint)(n * 10.0 + 0.01);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
408 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
409
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
410 static void gr_tools_show(const gchar *text, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
411 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
412 gint popped;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
413 gint hidden;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
414
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
415 if (layout_tools_float_get(NULL, &popped, &hidden) && hidden)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
416 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
417 layout_tools_float_set(NULL, popped, FALSE);
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
418 }
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
419 }
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
420
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
421 static void gr_tools_hide(const gchar *text, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
422 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
423 gint popped;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
424 gint hidden;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
425
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
426 if (layout_tools_float_get(NULL, &popped, &hidden) && !hidden)
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
427 {
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
428 layout_tools_float_set(NULL, popped, TRUE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
429 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
430 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
431
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
432 static gint gr_quit_idle_cb(gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
433 {
278
04abf5b160eb exit_gqview() renamed to exit_program().
zas_
parents: 254
diff changeset
434 exit_program();
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
435
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
436 return FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
437 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
438
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
439 static void gr_quit(const gchar *text, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
440 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
441 /* schedule exit when idle, if done from within a
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
442 * remote handler remote_close will crash
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
443 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
444 g_idle_add(gr_quit_idle_cb, NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
445 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
446
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
447 static void gr_file_load(const gchar *text, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
448 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
449 if (isfile(text))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
450 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
451 if (file_extension_match(text, ".gqv"))
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
452 {
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
453 collection_window_new(text);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
454 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
455 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
456 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
457 layout_set_path(NULL, text);
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
458 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
459 }
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
460 else if (isdir(text))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
461 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
462 layout_set_path(NULL, text);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
463 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
464 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
465 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
466 printf("remote sent filename that does not exist:\"%s\"\n", text);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
467 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
468 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
469
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
470 static void gr_file_view(const gchar *text, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
471 {
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
472 view_window_new(file_data_new_simple(text));
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
473 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
474
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
475 static void gr_list_clear(const gchar *text, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
476 {
279
5cd386db1e6c gqview_remote -> remote_connection
zas_
parents: 278
diff changeset
477 if (command_collection) collection_unref(command_collection);
5cd386db1e6c gqview_remote -> remote_connection
zas_
parents: 278
diff changeset
478 command_collection = NULL;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
479 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
480
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
481 static void gr_list_add(const gchar *text, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
482 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
483 gint new = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
484
279
5cd386db1e6c gqview_remote -> remote_connection
zas_
parents: 278
diff changeset
485 if (!command_collection)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
486 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
487 CollectionData *cd;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
488
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
489 cd = collection_new("");
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
490
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
491 g_free(cd->path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
492 cd->path = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
493 g_free(cd->name);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
494 cd->name = g_strdup(_("Command line"));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
495
279
5cd386db1e6c gqview_remote -> remote_connection
zas_
parents: 278
diff changeset
496 command_collection = cd;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
497 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
498 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
499 {
279
5cd386db1e6c gqview_remote -> remote_connection
zas_
parents: 278
diff changeset
500 new = (!collection_get_first(command_collection));
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
501 }
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
502
279
5cd386db1e6c gqview_remote -> remote_connection
zas_
parents: 278
diff changeset
503 if (collection_add(command_collection, file_data_new_simple(text), FALSE) && new)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
504 {
279
5cd386db1e6c gqview_remote -> remote_connection
zas_
parents: 278
diff changeset
505 layout_image_set_collection(NULL, command_collection,
5cd386db1e6c gqview_remote -> remote_connection
zas_
parents: 278
diff changeset
506 collection_get_first(command_collection));
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
507 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
508 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
509
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
510 static void gr_raise(const gchar *text, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
511 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
512 LayoutWindow *lw = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
513
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
514 if (layout_valid(&lw))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
515 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
516 gtk_window_present(GTK_WINDOW(lw->window));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
517 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
518 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
519
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
520 typedef struct _RemoteCommandEntry RemoteCommandEntry;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
521 struct _RemoteCommandEntry {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
522 gchar *opt_s;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
523 gchar *opt_l;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
524 void (*func)(const gchar *text, gpointer data);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
525 gint needs_extra;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
526 gint prefer_command_line;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
527 gchar *description;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
528 };
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
529
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
530 static RemoteCommandEntry remote_commands[] = {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
531 /* short, long callback, extra, prefer,description */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
532 { "-n", "--next", gr_image_next, FALSE, FALSE, N_("next image") },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
533 { "-b", "--back", gr_image_prev, FALSE, FALSE, N_("previous image") },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
534 { NULL, "--first", gr_image_first, FALSE, FALSE, N_("first image") },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
535 { NULL, "--last", gr_image_last, FALSE, FALSE, N_("last image") },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
536 { "-f", "--fullscreen", gr_fullscreen_toggle, FALSE, TRUE, N_("toggle full screen") },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
537 { "-fs","--fullscreen-start", gr_fullscreen_start, FALSE, FALSE, N_("start full screen") },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
538 { "-fS","--fullscreen-stop", gr_fullscreen_stop, FALSE, FALSE, N_("stop full screen") },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
539 { "-s", "--slideshow", gr_slideshow_toggle, FALSE, TRUE, N_("toggle slide show") },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
540 { "-ss","--slideshow-start", gr_slideshow_start, FALSE, FALSE, N_("start slide show") },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
541 { "-sS","--slideshow-stop", gr_slideshow_stop, FALSE, FALSE, N_("stop slide show") },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
542 { "-sr","--slideshow-recurse", gr_slideshow_start_rec, TRUE, FALSE, N_("start recursive slide show") },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
543 { "-d", "--delay=", gr_slideshow_delay, TRUE, FALSE, N_("set slide show delay in seconds") },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
544 { "+t", "--tools-show", gr_tools_show, FALSE, TRUE, N_("show tools") },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
545 { "-t", "--tools-hide", gr_tools_hide, FALSE, TRUE, N_("hide tools") },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
546 { "-q", "--quit", gr_quit, FALSE, FALSE, N_("quit") },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
547 { NULL, "file:", gr_file_load, TRUE, FALSE, N_("open file") },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
548 { NULL, "view:", gr_file_view, TRUE, FALSE, N_("open file in new window") },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
549 { NULL, "--list-clear", gr_list_clear, FALSE, FALSE, NULL },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
550 { NULL, "--list-add:", gr_list_add, TRUE, FALSE, NULL },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
551 { NULL, "raise", gr_raise, FALSE, FALSE, NULL },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
552 { NULL, NULL, NULL, FALSE, FALSE, NULL }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
553 };
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
554
279
5cd386db1e6c gqview_remote -> remote_connection
zas_
parents: 278
diff changeset
555 static RemoteCommandEntry *remote_command_find(const gchar *text, const gchar **offset)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
556 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
557 gint match = FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
558 gint i;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
559
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
560 i = 0;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
561 while (!match && remote_commands[i].func != NULL)
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
562 {
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
563 if (remote_commands[i].needs_extra)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
564 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
565 if (remote_commands[i].opt_s &&
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
566 strncmp(remote_commands[i].opt_s, text, strlen(remote_commands[i].opt_s)) == 0)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
567 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
568 if (offset) *offset = text + strlen(remote_commands[i].opt_s);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
569 return &remote_commands[i];
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
570 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
571 else if (remote_commands[i].opt_l &&
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
572 strncmp(remote_commands[i].opt_l, text, strlen(remote_commands[i].opt_l)) == 0)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
573 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
574 if (offset) *offset = text + strlen(remote_commands[i].opt_l);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
575 return &remote_commands[i];
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
576 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
577 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
578 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
579 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
580 if ((remote_commands[i].opt_s && strcmp(remote_commands[i].opt_s, text) == 0) ||
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
581 (remote_commands[i].opt_l && strcmp(remote_commands[i].opt_l, text) == 0))
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
582 {
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
583 if (offset) *offset = text;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
584 return &remote_commands[i];
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
585 }
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
586 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
587
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
588 i++;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
589 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
590
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
591 return NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
592 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
593
279
5cd386db1e6c gqview_remote -> remote_connection
zas_
parents: 278
diff changeset
594 static void remote_cb(RemoteConnection *rc, const gchar *text, gpointer data)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
595 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
596 RemoteCommandEntry *entry;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
597 const gchar *offset;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
598
279
5cd386db1e6c gqview_remote -> remote_connection
zas_
parents: 278
diff changeset
599 entry = remote_command_find(text, &offset);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
600 if (entry && entry->func)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
601 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
602 entry->func(offset, data);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
603 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
604 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
605 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
606 printf("unknown remote command:%s\n", text);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
607 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
608 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
609
279
5cd386db1e6c gqview_remote -> remote_connection
zas_
parents: 278
diff changeset
610 static void remote_help(void)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
611 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
612 gint i;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
613
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
614 print_term(_("Remote command list:\n"));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
615
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
616 i = 0;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
617 while (remote_commands[i].func != NULL)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
618 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
619 if (remote_commands[i].description)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
620 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
621 gchar *buf;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
622
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
623 buf = g_strdup_printf(" %-3s%s %-20s %s\n",
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
624 (remote_commands[i].opt_s) ? remote_commands[i].opt_s : "",
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
625 (remote_commands[i].opt_s && remote_commands[i].opt_l) ? "," : " ",
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
626 (remote_commands[i].opt_l) ? remote_commands[i].opt_l : "",
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
627 _(remote_commands[i].description));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
628
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
629 print_term(buf);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
630 g_free(buf);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
631 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
632 i++;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
633 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
634 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
635
279
5cd386db1e6c gqview_remote -> remote_connection
zas_
parents: 278
diff changeset
636 static GList *remote_build_list(GList *list, int argc, char *argv[])
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
637 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
638 gint i;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
639
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
640 i = 1;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
641 while (i < argc)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
642 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
643 RemoteCommandEntry *entry;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
644
279
5cd386db1e6c gqview_remote -> remote_connection
zas_
parents: 278
diff changeset
645 entry = remote_command_find(argv[i], NULL);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
646 if (entry)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
647 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
648 list = g_list_append(list, argv[i]);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
649 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
650 i++;
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
651 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
652
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
653 return list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
654 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
655
279
5cd386db1e6c gqview_remote -> remote_connection
zas_
parents: 278
diff changeset
656 static void remote_control(const gchar *arg_exec, GList *remote_list, const gchar *path,
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
657 GList *cmd_list, GList *collection_list)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
658 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
659 RemoteConnection *rc;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
660 gint started = FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
661 gchar *buf;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
662
283
e213fb025621 GQVIEW_* -> GQ_*
zas_
parents: 281
diff changeset
663 buf = g_strconcat(homedir(), "/", GQ_RC_DIR, "/.command", NULL);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
664 rc = remote_client_open(buf);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
665 if (!rc)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
666 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
667 GString *command;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
668 GList *work;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
669 gint retry_count = 12;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
670 gint blank = FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
671
288
d1f74154463e Replace occurences of Geeqie / geeqie by constants defined in main.h.
zas_
parents: 283
diff changeset
672 {
d1f74154463e Replace occurences of Geeqie / geeqie by constants defined in main.h.
zas_
parents: 283
diff changeset
673 gchar *msg = g_strdup_printf(_("Remote %s not running, starting..."), GQ_APPNAME);
d1f74154463e Replace occurences of Geeqie / geeqie by constants defined in main.h.
zas_
parents: 283
diff changeset
674 print_term(msg);
d1f74154463e Replace occurences of Geeqie / geeqie by constants defined in main.h.
zas_
parents: 283
diff changeset
675 g_free(msg);
d1f74154463e Replace occurences of Geeqie / geeqie by constants defined in main.h.
zas_
parents: 283
diff changeset
676 }
d1f74154463e Replace occurences of Geeqie / geeqie by constants defined in main.h.
zas_
parents: 283
diff changeset
677
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
678 command = g_string_new(arg_exec);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
679
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
680 work = remote_list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
681 while (work)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
682 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
683 gchar *text;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
684 RemoteCommandEntry *entry;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
685
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
686 text = work->data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
687 work = work->next;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
688
279
5cd386db1e6c gqview_remote -> remote_connection
zas_
parents: 278
diff changeset
689 entry = remote_command_find(text, NULL);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
690 if (entry)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
691 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
692 if (entry->prefer_command_line)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
693 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
694 remote_list = g_list_remove(remote_list, text);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
695 g_string_append(command, " ");
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
696 g_string_append(command, text);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
697 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
698 if (entry->opt_l && strcmp(entry->opt_l, "file:") == 0)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
699 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
700 blank = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
701 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
702 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
703 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
704
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
705 if (blank || cmd_list || path) g_string_append(command, " --blank");
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
706 if (debug) g_string_append(command, " --debug");
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
707
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
708 g_string_append(command, " &");
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
709 system(command->str);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
710 g_string_free(command, TRUE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
711
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
712 while (!rc && retry_count > 0)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
713 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
714 usleep((retry_count > 10) ? 500000 : 1000000);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
715 rc = remote_client_open(buf);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
716 if (!rc) print_term(".");
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
717 retry_count--;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
718 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
719
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
720 print_term("\n");
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
721
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
722 started = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
723 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
724 g_free(buf);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
725
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
726 if (rc)
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
727 {
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
728 GList *work;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
729 const gchar *prefix;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
730 gint use_path = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
731 gint sent = FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
732
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
733 work = remote_list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
734 while (work)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
735 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
736 gchar *text;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
737 RemoteCommandEntry *entry;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
738
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
739 text = work->data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
740 work = work->next;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
741
279
5cd386db1e6c gqview_remote -> remote_connection
zas_
parents: 278
diff changeset
742 entry = remote_command_find(text, NULL);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
743 if (entry &&
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
744 entry->opt_l &&
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
745 strcmp(entry->opt_l, "file:") == 0) use_path = FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
746
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
747 remote_client_send(rc, text);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
748
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
749 sent = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
750 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
751
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
752 if (cmd_list && cmd_list->next)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
753 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
754 prefix = "--list-add:";
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
755 remote_client_send(rc, "--list-clear");
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
756 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
757 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
758 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
759 prefix = "file:";
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
760 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
761
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
762 work = cmd_list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
763 while (work)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
764 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
765 const gchar *name;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
766 gchar *text;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
767
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
768 name = work->data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
769 work = work->next;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
770
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
771 text = g_strconcat(prefix, name, NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
772 remote_client_send(rc, text);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
773 g_free(text);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
774
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
775 sent = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
776 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
777
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
778 if (path && !cmd_list && use_path)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
779 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
780 gchar *text;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
781
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
782 text = g_strdup_printf("file:%s", path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
783 remote_client_send(rc, text);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
784 g_free(text);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
785
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
786 sent = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
787 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
788
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
789 work = collection_list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
790 while (work)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
791 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
792 const gchar *name;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
793 gchar *text;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
794
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
795 name = work->data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
796 work = work->next;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
797
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
798 text = g_strdup_printf("file:%s", name);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
799 remote_client_send(rc, text);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
800 g_free(text);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
801
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
802 sent = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
803 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
804
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
805 if (!started && !sent)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
806 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
807 remote_client_send(rc, "raise");
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
808 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
809 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
810 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
811 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
812 print_term(_("Remote not available\n"));
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
813 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
814
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
815 _exit(0);
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
816 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
817
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
818 /*
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
819 *-----------------------------------------------------------------------------
3
gqview
parents: 1
diff changeset
820 * command line parser (private) hehe, who needs popt anyway?
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
821 *-----------------------------------------------------------------------------
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
822 */
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
823
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
824 static gint startup_blank = FALSE;
3
gqview
parents: 1
diff changeset
825 static gint startup_full_screen = FALSE;
gqview
parents: 1
diff changeset
826 static gint startup_in_slideshow = FALSE;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
827 static gint startup_command_line_collection = FALSE;
3
gqview
parents: 1
diff changeset
828
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
829
76
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
830 static void parse_command_line_add_file(const gchar *file_path, gchar **path, gchar **file,
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
831 GList **list, GList **collection_list)
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
832 {
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
833 gchar *path_parsed;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
834
76
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
835 path_parsed = g_strdup(file_path);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
836 parse_out_relatives(path_parsed);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
837
76
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
838 if (file_extension_match(path_parsed, ".gqv"))
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
839 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
840 *collection_list = g_list_append(*collection_list, path_parsed);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
841 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
842 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
843 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
844 if (!*path) *path = remove_level_from_path(path_parsed);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
845 if (!*file) *file = g_strdup(path_parsed);
76
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
846 *list = g_list_prepend(*list, path_parsed);
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
847 }
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
848 }
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
849
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
850 static void parse_command_line_add_dir(const gchar *dir, gchar **path, gchar **file,
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
851 GList **list)
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
852 {
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
853 GList *files = NULL;
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
854 gchar *path_parsed;
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
855
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
856 path_parsed = g_strdup(dir);
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
857 parse_out_relatives(path_parsed);
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
858
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
859 if (path_list(path_parsed, &files, NULL))
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
860 {
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
861 GList *work;
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
862
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
863 files = path_list_filter(files, FALSE);
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
864 files = path_list_sort(files);
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
865
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
866 work = files;
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
867 while (work)
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
868 {
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
869 gchar *p;
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
870
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
871 p = work->data;
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
872 if (!*path) *path = remove_level_from_path(p);
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
873 if (!*file) *file = g_strdup(p);
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
874 *list = g_list_prepend(*list, p);
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
875
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
876 work = work->next;
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
877 }
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
878
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
879 g_list_free(files);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
880 }
76
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
881
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
882 g_free(path_parsed);
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
883 }
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
884
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
885 static void parse_command_line_process_dir(const gchar *dir, gchar **path, gchar **file,
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
886 GList **list, gchar **first_dir)
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
887 {
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
888
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
889 if (!*list && !*first_dir)
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
890 {
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
891 *first_dir = g_strdup(dir);
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
892 }
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
893 else
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
894 {
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
895 if (*first_dir)
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
896 {
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
897 parse_command_line_add_dir(*first_dir, path, file, list);
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
898 g_free(*first_dir);
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
899 *first_dir = NULL;
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
900 }
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
901 parse_command_line_add_dir(dir, path, file, list);
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
902 }
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
903 }
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
904
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
905 static void parse_command_line_process_file(const gchar *file_path, gchar **path, gchar **file,
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
906 GList **list, GList **collection_list, gchar **first_dir)
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
907 {
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
908
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
909 if (*first_dir)
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
910 {
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
911 parse_command_line_add_dir(*first_dir, path, file, list);
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
912 g_free(*first_dir);
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
913 *first_dir = NULL;
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
914 }
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
915 parse_command_line_add_file(file_path, path, file, list, collection_list);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
916 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
917
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
918 static void parse_command_line(int argc, char *argv[], gchar **path, gchar **file,
81
0ef72a64930b Thu Oct 19 09:35:18 2006 John Ellis <johne@verizon.net>
gqview
parents: 79
diff changeset
919 GList **cmd_list, GList **collection_list,
0ef72a64930b Thu Oct 19 09:35:18 2006 John Ellis <johne@verizon.net>
gqview
parents: 79
diff changeset
920 gchar **geometry)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
921 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
922 GList *list = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
923 GList *remote_list = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
924 gint remote_do = FALSE;
76
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
925 gchar *first_dir = NULL;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
926
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
927 if (argc > 1)
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
928 {
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
929 gint i;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
930 gchar *base_dir = get_current_dir();
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
931 i = 1;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
932 while (i < argc)
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
933 {
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
934 const gchar *cmd_line = argv[i];
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
935 gchar *cmd_all = concat_dir_and_file(base_dir, cmd_line);
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
936
76
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
937 if (cmd_line[0] == '/' && isdir(cmd_line))
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
938 {
76
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
939 parse_command_line_process_dir(cmd_line, path, file, &list, &first_dir);
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
940 }
76
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
941 else if (isdir(cmd_all))
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
942 {
76
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
943 parse_command_line_process_dir(cmd_all, path, file, &list, &first_dir);
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
944 }
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
945 else if (cmd_line[0] == '/' && isfile(cmd_line))
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
946 {
76
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
947 parse_command_line_process_file(cmd_line, path, file,
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
948 &list, collection_list, &first_dir);
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
949 }
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
950 else if (isfile(cmd_all))
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
951 {
76
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
952 parse_command_line_process_file(cmd_all, path, file,
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
953 &list, collection_list, &first_dir);
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
954 }
378
f1bdbbdb73ba Parse command line for --debug option as soon as possible and allow
zas_
parents: 367
diff changeset
955 else if (strncmp(cmd_line, "--debug", 7) == 0 && (cmd_line[7] == '\0' || cmd_line[7] == '='))
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
956 {
378
f1bdbbdb73ba Parse command line for --debug option as soon as possible and allow
zas_
parents: 367
diff changeset
957 /* do nothing but do not produce warnings */
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
958 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
959 else if (strcmp(cmd_line, "+t") == 0 ||
3
gqview
parents: 1
diff changeset
960 strcmp(cmd_line, "--with-tools") == 0)
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
961 {
338
41c3cb73120f Rename window options (moved to layout) and re-order rc file.
zas_
parents: 334
diff changeset
962 options->layout.tools_float = FALSE;
41c3cb73120f Rename window options (moved to layout) and re-order rc file.
zas_
parents: 334
diff changeset
963 options->layout.tools_hidden = FALSE;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
964
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
965 remote_list = g_list_append(remote_list, "+t");
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
966 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
967 else if (strcmp(cmd_line, "-t") == 0 ||
3
gqview
parents: 1
diff changeset
968 strcmp(cmd_line, "--without-tools") == 0)
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
969 {
338
41c3cb73120f Rename window options (moved to layout) and re-order rc file.
zas_
parents: 334
diff changeset
970 options->layout.tools_hidden = TRUE;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
971
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
972 remote_list = g_list_append(remote_list, "-t");
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
973 }
3
gqview
parents: 1
diff changeset
974 else if (strcmp(cmd_line, "-f") == 0 ||
gqview
parents: 1
diff changeset
975 strcmp(cmd_line, "--fullscreen") == 0)
gqview
parents: 1
diff changeset
976 {
gqview
parents: 1
diff changeset
977 startup_full_screen = TRUE;
gqview
parents: 1
diff changeset
978 }
gqview
parents: 1
diff changeset
979 else if (strcmp(cmd_line, "-s") == 0 ||
gqview
parents: 1
diff changeset
980 strcmp(cmd_line, "--slideshow") == 0)
gqview
parents: 1
diff changeset
981 {
gqview
parents: 1
diff changeset
982 startup_in_slideshow = TRUE;
gqview
parents: 1
diff changeset
983 }
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
984 else if (strcmp(cmd_line, "-l") == 0 ||
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
985 strcmp(cmd_line, "--list") == 0)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
986 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
987 startup_command_line_collection = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
988 }
81
0ef72a64930b Thu Oct 19 09:35:18 2006 John Ellis <johne@verizon.net>
gqview
parents: 79
diff changeset
989 else if (strncmp(cmd_line, "--geometry=", 11) == 0)
0ef72a64930b Thu Oct 19 09:35:18 2006 John Ellis <johne@verizon.net>
gqview
parents: 79
diff changeset
990 {
0ef72a64930b Thu Oct 19 09:35:18 2006 John Ellis <johne@verizon.net>
gqview
parents: 79
diff changeset
991 if (!*geometry) *geometry = g_strdup(cmd_line + 11);
0ef72a64930b Thu Oct 19 09:35:18 2006 John Ellis <johne@verizon.net>
gqview
parents: 79
diff changeset
992 }
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
993 else if (strcmp(cmd_line, "-r") == 0 ||
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
994 strcmp(cmd_line, "--remote") == 0)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
995 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
996 if (!remote_do)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
997 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
998 remote_do = TRUE;
279
5cd386db1e6c gqview_remote -> remote_connection
zas_
parents: 278
diff changeset
999 remote_list = remote_build_list(remote_list, argc, argv);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1000 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1001 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1002 else if (strcmp(cmd_line, "-rh") == 0 ||
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1003 strcmp(cmd_line, "--remote-help") == 0)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1004 {
279
5cd386db1e6c gqview_remote -> remote_connection
zas_
parents: 278
diff changeset
1005 remote_help();
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1006 exit (0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1007 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1008 else if (strcmp(cmd_line, "--blank") == 0)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1009 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1010 startup_blank = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1011 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1012 else if (strcmp(cmd_line, "-v") == 0 ||
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1013 strcmp(cmd_line, "--version") == 0)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1014 {
288
d1f74154463e Replace occurences of Geeqie / geeqie by constants defined in main.h.
zas_
parents: 283
diff changeset
1015 printf("%s %s\n", GQ_APPNAME, VERSION);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1016 exit (0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1017 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1018 else if (strcmp(cmd_line, "--alternate") == 0)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1019 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1020 /* enable faster experimental algorithm */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1021 printf("Alternate similarity algorithm enabled\n");
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1022 image_sim_alternate_set(TRUE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1023 }
3
gqview
parents: 1
diff changeset
1024 else if (strcmp(cmd_line, "-h") == 0 ||
gqview
parents: 1
diff changeset
1025 strcmp(cmd_line, "--help") == 0)
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1026 {
288
d1f74154463e Replace occurences of Geeqie / geeqie by constants defined in main.h.
zas_
parents: 283
diff changeset
1027 gchar *usage = g_strdup_printf(_("Usage: %s [options] [path]\n\n"), GQ_APPNAME_LC);
d1f74154463e Replace occurences of Geeqie / geeqie by constants defined in main.h.
zas_
parents: 283
diff changeset
1028 printf("%s %s\n", GQ_APPNAME, VERSION);
d1f74154463e Replace occurences of Geeqie / geeqie by constants defined in main.h.
zas_
parents: 283
diff changeset
1029 print_term(usage);
d1f74154463e Replace occurences of Geeqie / geeqie by constants defined in main.h.
zas_
parents: 283
diff changeset
1030 g_free(usage);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1031 print_term(_("valid options are:\n"));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1032 print_term(_(" +t, --with-tools force show of tools\n"));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1033 print_term(_(" -t, --without-tools force hide of tools\n"));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1034 print_term(_(" -f, --fullscreen start in full screen mode\n"));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1035 print_term(_(" -s, --slideshow start in slideshow mode\n"));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1036 print_term(_(" -l, --list open collection window for command line\n"));
81
0ef72a64930b Thu Oct 19 09:35:18 2006 John Ellis <johne@verizon.net>
gqview
parents: 79
diff changeset
1037 print_term(_(" --geometry=GEOMETRY set main window location\n"));
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1038 print_term(_(" -r, --remote send following commands to open window\n"));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1039 print_term(_(" -rh,--remote-help print remote command list\n"));
227
41fc4bfc8b25 Add a debug level spinner at the end of Preferences > Advanced.
zas_
parents: 218
diff changeset
1040 #ifdef DEBUG
379
a430eb2e3c95 Indicate --debug[=level] in usage display.
zas_
parents: 378
diff changeset
1041 print_term(_(" --debug[=level] turn on debug output\n"));
227
41fc4bfc8b25 Add a debug level spinner at the end of Preferences > Advanced.
zas_
parents: 218
diff changeset
1042 #endif
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1043 print_term(_(" -v, --version print version info\n"));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1044 print_term(_(" -h, --help show this message\n\n"));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1045
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1046 #if 0
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1047 /* these options are not officially supported!
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1048 * only for testing new features, no need to translate them */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1049 print_term( " --alternate use alternate similarity algorithm\n");
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1050 #endif
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1051
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1052 exit (0);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1053 }
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1054 else if (!remote_do)
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1055 {
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1056 gchar *buf;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1057
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1058 buf = g_strdup_printf(_("invalid or ignored: %s\nUse --help for options\n"), cmd_line);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1059 print_term(buf);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1060 g_free(buf);
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1061 }
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1062
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1063 g_free(cmd_all);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1064 i++;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1065 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1066 g_free(base_dir);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1067 parse_out_relatives(*path);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1068 parse_out_relatives(*file);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1069 }
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1070
76
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
1071 list = g_list_reverse(list);
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
1072
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
1073 if (!*path && first_dir)
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
1074 {
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
1075 *path = first_dir;
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
1076 first_dir = NULL;
79
528e3432e0c0 Thu Oct 19 07:23:37 2006 John Ellis <johne@verizon.net>
gqview
parents: 76
diff changeset
1077
528e3432e0c0 Thu Oct 19 07:23:37 2006 John Ellis <johne@verizon.net>
gqview
parents: 76
diff changeset
1078 parse_out_relatives(*path);
76
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
1079 }
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
1080 g_free(first_dir);
07773a3c5b29 Sun Oct 15 04:03:41 2006 John Ellis <johne@verizon.net>
gqview
parents: 21
diff changeset
1081
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1082 if (remote_do)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1083 {
279
5cd386db1e6c gqview_remote -> remote_connection
zas_
parents: 278
diff changeset
1084 remote_control(argv[0], remote_list, *path, list, *collection_list);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1085 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1086 g_list_free(remote_list);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1087
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1088 if (list && list->next)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1089 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1090 *cmd_list = list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1091 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1092 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1093 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1094 path_list_free(list);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1095 *cmd_list = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1096 }
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1097 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1098
378
f1bdbbdb73ba Parse command line for --debug option as soon as possible and allow
zas_
parents: 367
diff changeset
1099 static void parse_command_line_for_debug_option(int argc, char *argv[])
f1bdbbdb73ba Parse command line for --debug option as soon as possible and allow
zas_
parents: 367
diff changeset
1100 {
f1bdbbdb73ba Parse command line for --debug option as soon as possible and allow
zas_
parents: 367
diff changeset
1101 #ifdef DEBUG
f1bdbbdb73ba Parse command line for --debug option as soon as possible and allow
zas_
parents: 367
diff changeset
1102 const gchar *debug_option = "--debug";
f1bdbbdb73ba Parse command line for --debug option as soon as possible and allow
zas_
parents: 367
diff changeset
1103 gint len = strlen(debug_option);
f1bdbbdb73ba Parse command line for --debug option as soon as possible and allow
zas_
parents: 367
diff changeset
1104
f1bdbbdb73ba Parse command line for --debug option as soon as possible and allow
zas_
parents: 367
diff changeset
1105 if (argc > 1)
f1bdbbdb73ba Parse command line for --debug option as soon as possible and allow
zas_
parents: 367
diff changeset
1106 {
f1bdbbdb73ba Parse command line for --debug option as soon as possible and allow
zas_
parents: 367
diff changeset
1107 gint i;
f1bdbbdb73ba Parse command line for --debug option as soon as possible and allow
zas_
parents: 367
diff changeset
1108
f1bdbbdb73ba Parse command line for --debug option as soon as possible and allow
zas_
parents: 367
diff changeset
1109 for (i = 1; i < argc; i++)
f1bdbbdb73ba Parse command line for --debug option as soon as possible and allow
zas_
parents: 367
diff changeset
1110 {
f1bdbbdb73ba Parse command line for --debug option as soon as possible and allow
zas_
parents: 367
diff changeset
1111 const gchar *cmd_line = argv[i];
f1bdbbdb73ba Parse command line for --debug option as soon as possible and allow
zas_
parents: 367
diff changeset
1112 if (strncmp(cmd_line, debug_option, len) == 0)
f1bdbbdb73ba Parse command line for --debug option as soon as possible and allow
zas_
parents: 367
diff changeset
1113 {
f1bdbbdb73ba Parse command line for --debug option as soon as possible and allow
zas_
parents: 367
diff changeset
1114 gint cmd_line_len = strlen(cmd_line);
f1bdbbdb73ba Parse command line for --debug option as soon as possible and allow
zas_
parents: 367
diff changeset
1115
f1bdbbdb73ba Parse command line for --debug option as soon as possible and allow
zas_
parents: 367
diff changeset
1116 /* we now increment the debug state for verbosity */
f1bdbbdb73ba Parse command line for --debug option as soon as possible and allow
zas_
parents: 367
diff changeset
1117 if (cmd_line_len == len)
f1bdbbdb73ba Parse command line for --debug option as soon as possible and allow
zas_
parents: 367
diff changeset
1118 debug++;
f1bdbbdb73ba Parse command line for --debug option as soon as possible and allow
zas_
parents: 367
diff changeset
1119 else if (cmd_line[len] == '=' && g_ascii_isdigit(cmd_line[len+1]))
f1bdbbdb73ba Parse command line for --debug option as soon as possible and allow
zas_
parents: 367
diff changeset
1120 {
f1bdbbdb73ba Parse command line for --debug option as soon as possible and allow
zas_
parents: 367
diff changeset
1121 gint n = atoi(cmd_line + len + 1);
f1bdbbdb73ba Parse command line for --debug option as soon as possible and allow
zas_
parents: 367
diff changeset
1122 if (n < 0) n = 1;
f1bdbbdb73ba Parse command line for --debug option as soon as possible and allow
zas_
parents: 367
diff changeset
1123 debug += n;
f1bdbbdb73ba Parse command line for --debug option as soon as possible and allow
zas_
parents: 367
diff changeset
1124 }
f1bdbbdb73ba Parse command line for --debug option as soon as possible and allow
zas_
parents: 367
diff changeset
1125 }
f1bdbbdb73ba Parse command line for --debug option as soon as possible and allow
zas_
parents: 367
diff changeset
1126 }
f1bdbbdb73ba Parse command line for --debug option as soon as possible and allow
zas_
parents: 367
diff changeset
1127 }
f1bdbbdb73ba Parse command line for --debug option as soon as possible and allow
zas_
parents: 367
diff changeset
1128
f1bdbbdb73ba Parse command line for --debug option as soon as possible and allow
zas_
parents: 367
diff changeset
1129 if (debug > 0) printf("debugging output enabled (level %d)\n", debug);
f1bdbbdb73ba Parse command line for --debug option as soon as possible and allow
zas_
parents: 367
diff changeset
1130 #endif
f1bdbbdb73ba Parse command line for --debug option as soon as possible and allow
zas_
parents: 367
diff changeset
1131 }
f1bdbbdb73ba Parse command line for --debug option as soon as possible and allow
zas_
parents: 367
diff changeset
1132
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1133 /*
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1134 *-----------------------------------------------------------------------------
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1135 * startup, init, and exit
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1136 *-----------------------------------------------------------------------------
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1137 */
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1138
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1139 #define RC_HISTORY_NAME "history"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1140
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1141 static void keys_load(void)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1142 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1143 gchar *path;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1144
283
e213fb025621 GQVIEW_* -> GQ_*
zas_
parents: 281
diff changeset
1145 path = g_strconcat(homedir(), "/", GQ_RC_DIR, "/", RC_HISTORY_NAME, NULL);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1146 history_list_load(path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1147 g_free(path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1148 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1149
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1150 static void keys_save(void)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1151 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1152 gchar *path;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1153
283
e213fb025621 GQVIEW_* -> GQ_*
zas_
parents: 281
diff changeset
1154 path = g_strconcat(homedir(), "/", GQ_RC_DIR, "/", RC_HISTORY_NAME, NULL);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1155 history_list_save(path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1156 g_free(path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1157 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1158
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1159 static void check_for_home_path(gchar *path)
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1160 {
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1161 gchar *buf;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1162
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1163 buf = g_strconcat(homedir(), "/", path, NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1164 if (!isdir(buf))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1165 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1166 gchar *tmp;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1167
288
d1f74154463e Replace occurences of Geeqie / geeqie by constants defined in main.h.
zas_
parents: 283
diff changeset
1168 tmp = g_strdup_printf(_("Creating %s dir:%s\n"), GQ_APPNAME, buf);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1169 print_term(tmp);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1170 g_free(tmp);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1171
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1172 if (!mkdir_utf8(buf, 0755))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1173 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1174 tmp = g_strdup_printf(_("Could not create dir:%s\n"), buf);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1175 print_term(tmp);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1176 g_free(tmp);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1177 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1178 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1179 g_free(buf);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1180 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1181
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1182 static void setup_default_options(void)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1183 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1184 gchar *path;
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1185 gint i;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1186
283
e213fb025621 GQVIEW_* -> GQ_*
zas_
parents: 281
diff changeset
1187 for (i = 0; i < GQ_EDITOR_SLOTS; i++)
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1188 {
318
b16b9b8979e5 Add a new struct ConfOptions to handle options.
zas_
parents: 289
diff changeset
1189 options->editor_name[i] = NULL;
b16b9b8979e5 Add a new struct ConfOptions to handle options.
zas_
parents: 289
diff changeset
1190 options->editor_command[i] = NULL;
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1191 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1192
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1193 editor_reset_defaults();
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1194
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1195 bookmark_add_default(_("Home"), homedir());
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1196 path = concat_dir_and_file(homedir(), "Desktop");
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1197 bookmark_add_default(_("Desktop"), path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1198 g_free(path);
283
e213fb025621 GQVIEW_* -> GQ_*
zas_
parents: 281
diff changeset
1199 path = concat_dir_and_file(homedir(), GQ_RC_DIR_COLLECTIONS);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1200 bookmark_add_default(_("Collections"), path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1201 g_free(path);
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1202
341
15c6b94545a2 Move safe_delete* and in place rename options to file_ops
zas_
parents: 340
diff changeset
1203 g_free(options->file_ops.safe_delete_path);
15c6b94545a2 Move safe_delete* and in place rename options to file_ops
zas_
parents: 340
diff changeset
1204 options->file_ops.safe_delete_path = concat_dir_and_file(homedir(), GQ_RC_DIR_TRASH);
113
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
1205
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
1206 for (i = 0; i < COLOR_PROFILE_INPUTS; i++)
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
1207 {
327
049d6b00cc14 Rename color profile options.
zas_
parents: 326
diff changeset
1208 options->color_profile.input_file[i] = NULL;
049d6b00cc14 Rename color profile options.
zas_
parents: 326
diff changeset
1209 options->color_profile.input_name[i] = NULL;
113
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
1210 }
189
deea9e11f1d4 fixed reading sidecar extensions from config file
nadvornik
parents: 145
diff changeset
1211
354
5c82855feba7 Add a button to reset fullscreen info string to default value.
zas_
parents: 341
diff changeset
1212 set_default_fullscreen_info(options);
189
deea9e11f1d4 fixed reading sidecar extensions from config file
nadvornik
parents: 145
diff changeset
1213 sidecar_ext_add_defaults();
367
3556cc825e59 Move layout.order default init to setup_default_options().
zas_
parents: 358
diff changeset
1214 options->layout.order = g_strdup("123");
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1215 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1216
278
04abf5b160eb exit_gqview() renamed to exit_program().
zas_
parents: 254
diff changeset
1217 static void exit_program_final(void)
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1218 {
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1219 gchar *path;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1220 gchar *pathl;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1221 LayoutWindow *lw = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1222
279
5cd386db1e6c gqview_remote -> remote_connection
zas_
parents: 278
diff changeset
1223 remote_close(remote_connection);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1224
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1225 collect_manager_flush();
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1226
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1227 if (layout_valid(&lw))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1228 {
338
41c3cb73120f Rename window options (moved to layout) and re-order rc file.
zas_
parents: 334
diff changeset
1229 options->layout.main_window.maximized = window_maximized(lw->window);
41c3cb73120f Rename window options (moved to layout) and re-order rc file.
zas_
parents: 334
diff changeset
1230 if (!options->layout.main_window.maximized)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1231 {
338
41c3cb73120f Rename window options (moved to layout) and re-order rc file.
zas_
parents: 334
diff changeset
1232 layout_geometry_get(NULL, &options->layout.main_window.x, &options->layout.main_window.y,
41c3cb73120f Rename window options (moved to layout) and re-order rc file.
zas_
parents: 334
diff changeset
1233 &options->layout.main_window.w, &options->layout.main_window.h);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1234 }
322
d344bcf37618 Rationalize fullscreen options naming.
zas_
parents: 320
diff changeset
1235 options->fullscreen.show_info = image_osd_get(lw->image, NULL, NULL);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1236 }
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1237
338
41c3cb73120f Rename window options (moved to layout) and re-order rc file.
zas_
parents: 334
diff changeset
1238 layout_geometry_get_dividers(NULL, &options->layout.main_window.hdivider_pos, &options->layout.main_window.vdivider_pos);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1239
380
5afe77bb563a Introduce a new struct ViewDir to handle directory views common
zas_
parents: 379
diff changeset
1240 layout_views_get(NULL, &options->layout.dir_view_type, &options->layout.view_as_icons);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1241
340
77103f3f2cb1 Rename option thumbnails.enabled to layout.show_thumbnails as it makes
zas_
parents: 338
diff changeset
1242 options->layout.show_thumbnails = layout_thumb_get(NULL);
329
a51242c032ea Rename file sorting options.
zas_
parents: 327
diff changeset
1243 layout_sort_get(NULL, &options->file_sort.method, &options->file_sort.ascending);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1244
338
41c3cb73120f Rename window options (moved to layout) and re-order rc file.
zas_
parents: 334
diff changeset
1245 layout_geometry_get_tools(NULL, &options->layout.float_window.x, &options->layout.float_window.y,
41c3cb73120f Rename window options (moved to layout) and re-order rc file.
zas_
parents: 334
diff changeset
1246 &options->layout.float_window.w, &options->layout.float_window.h, &options->layout.float_window.vdivider_pos);
41c3cb73120f Rename window options (moved to layout) and re-order rc file.
zas_
parents: 334
diff changeset
1247 layout_tools_float_get(NULL, &options->layout.tools_float, &options->layout.tools_hidden);
41c3cb73120f Rename window options (moved to layout) and re-order rc file.
zas_
parents: 334
diff changeset
1248 options->layout.toolbar_hidden = layout_toolbar_hidden(NULL);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1249
327
049d6b00cc14 Rename color profile options.
zas_
parents: 326
diff changeset
1250 options->color_profile.enabled = layout_image_color_profile_get_use(NULL);
113
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
1251 layout_image_color_profile_get(NULL,
327
049d6b00cc14 Rename color profile options.
zas_
parents: 326
diff changeset
1252 &options->color_profile.input_type,
049d6b00cc14 Rename color profile options.
zas_
parents: 326
diff changeset
1253 &options->color_profile.screen_type,
049d6b00cc14 Rename color profile options.
zas_
parents: 326
diff changeset
1254 &options->color_profile.use_image);
113
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
1255
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1256 save_options();
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1257 keys_save();
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1258
283
e213fb025621 GQVIEW_* -> GQ_*
zas_
parents: 281
diff changeset
1259 path = g_strconcat(homedir(), "/", GQ_RC_DIR, "/accels", NULL);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1260 pathl = path_from_utf8(path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1261 gtk_accel_map_save(pathl);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1262 g_free(pathl);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1263 g_free(path);
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1264
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1265 gtk_main_quit();
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1266 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1267
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1268 static GenericDialog *exit_dialog = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1269
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1270 static void exit_confirm_cancel_cb(GenericDialog *gd, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1271 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1272 exit_dialog = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1273 generic_dialog_close(gd);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1274 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1275
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1276 static void exit_confirm_exit_cb(GenericDialog *gd, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1277 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1278 exit_dialog = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1279 generic_dialog_close(gd);
278
04abf5b160eb exit_gqview() renamed to exit_program().
zas_
parents: 254
diff changeset
1280 exit_program_final();
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1281 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1282
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1283 static gint exit_confirm_dlg(void)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1284 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1285 GtkWidget *parent;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1286 LayoutWindow *lw;
288
d1f74154463e Replace occurences of Geeqie / geeqie by constants defined in main.h.
zas_
parents: 283
diff changeset
1287 gchar *msg;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1288
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1289 if (exit_dialog)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1290 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1291 gtk_window_present(GTK_WINDOW(exit_dialog->dialog));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1292 return TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1293 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1294
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1295 if (!collection_window_modified_exists()) return FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1296
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1297 parent = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1298 lw = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1299 if (layout_valid(&lw))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1300 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1301 parent = lw->window;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1302 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1303
288
d1f74154463e Replace occurences of Geeqie / geeqie by constants defined in main.h.
zas_
parents: 283
diff changeset
1304 msg = g_strdup_printf("%s - %s", GQ_APPNAME, _("exit"));
d1f74154463e Replace occurences of Geeqie / geeqie by constants defined in main.h.
zas_
parents: 283
diff changeset
1305 exit_dialog = generic_dialog_new(msg,
254
9faf34f047b1 Make the wmclass value unique among the code by defining
zas_
parents: 227
diff changeset
1306 GQ_WMCLASS, "exit", parent, FALSE,
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1307 exit_confirm_cancel_cb, NULL);
288
d1f74154463e Replace occurences of Geeqie / geeqie by constants defined in main.h.
zas_
parents: 283
diff changeset
1308 g_free(msg);
d1f74154463e Replace occurences of Geeqie / geeqie by constants defined in main.h.
zas_
parents: 283
diff changeset
1309 msg = g_strdup_printf(_("Quit %s"), GQ_APPNAME);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1310 generic_dialog_add_message(exit_dialog, GTK_STOCK_DIALOG_QUESTION,
288
d1f74154463e Replace occurences of Geeqie / geeqie by constants defined in main.h.
zas_
parents: 283
diff changeset
1311 msg, _("Collections have been modified. Quit anyway?"));
d1f74154463e Replace occurences of Geeqie / geeqie by constants defined in main.h.
zas_
parents: 283
diff changeset
1312 g_free(msg);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1313 generic_dialog_add_button(exit_dialog, GTK_STOCK_QUIT, NULL, exit_confirm_exit_cb, TRUE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1314
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1315 gtk_widget_show(exit_dialog->dialog);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1316
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1317 return TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1318 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1319
278
04abf5b160eb exit_gqview() renamed to exit_program().
zas_
parents: 254
diff changeset
1320 void exit_program(void)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1321 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1322 layout_image_full_screen_stop(NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1323
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1324 if (exit_confirm_dlg()) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1325
278
04abf5b160eb exit_gqview() renamed to exit_program().
zas_
parents: 254
diff changeset
1326 exit_program_final();
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1327 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1328
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1329 int main (int argc, char *argv[])
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1330 {
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1331 LayoutWindow *lw;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1332 gchar *path = NULL;
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1333 gchar *cmd_path = NULL;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1334 gchar *cmd_file = NULL;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1335 GList *cmd_list = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1336 GList *collection_list = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1337 CollectionData *first_collection = NULL;
81
0ef72a64930b Thu Oct 19 09:35:18 2006 John Ellis <johne@verizon.net>
gqview
parents: 79
diff changeset
1338 gchar *geometry = NULL;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1339 gchar *buf;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1340 gchar *bufl;
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1341
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1342 /* setup locale, i18n */
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1343 gtk_set_locale();
283
e213fb025621 GQVIEW_* -> GQ_*
zas_
parents: 281
diff changeset
1344 bindtextdomain(PACKAGE, GQ_LOCALEDIR);
10
6d50eaba8e4b ########
gqview
parents: 9
diff changeset
1345 bind_textdomain_codeset(PACKAGE, "UTF-8");
6d50eaba8e4b ########
gqview
parents: 9
diff changeset
1346 textdomain(PACKAGE);
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1347
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1348 /* setup random seed for random slideshow */
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1349 srand(time(NULL));
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1350
21
56866f205a68 ##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents: 10
diff changeset
1351 #if 1
288
d1f74154463e Replace occurences of Geeqie / geeqie by constants defined in main.h.
zas_
parents: 283
diff changeset
1352 printf("%s %s, This is an alpha release.\n", GQ_APPNAME, VERSION);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1353 #endif
378
f1bdbbdb73ba Parse command line for --debug option as soon as possible and allow
zas_
parents: 367
diff changeset
1354 parse_command_line_for_debug_option(argc, argv);
f1bdbbdb73ba Parse command line for --debug option as soon as possible and allow
zas_
parents: 367
diff changeset
1355
318
b16b9b8979e5 Add a new struct ConfOptions to handle options.
zas_
parents: 289
diff changeset
1356 options = init_options(NULL);
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1357 setup_default_options();
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1358 load_options();
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1359
81
0ef72a64930b Thu Oct 19 09:35:18 2006 John Ellis <johne@verizon.net>
gqview
parents: 79
diff changeset
1360 parse_command_line(argc, argv, &cmd_path, &cmd_file, &cmd_list, &collection_list, &geometry);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1361
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1362 gtk_init (&argc, &argv);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1363
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1364 if (gtk_major_version < GTK_MAJOR_VERSION ||
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1365 (gtk_major_version == GTK_MAJOR_VERSION && gtk_minor_version < GTK_MINOR_VERSION) )
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1366 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1367 gchar *msg;
288
d1f74154463e Replace occurences of Geeqie / geeqie by constants defined in main.h.
zas_
parents: 283
diff changeset
1368
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1369 print_term("!!! This is a friendly warning.\n");
288
d1f74154463e Replace occurences of Geeqie / geeqie by constants defined in main.h.
zas_
parents: 283
diff changeset
1370 msg = g_strdup_printf("!!! The version of GTK+ in use now is older than when %s was compiled.\n", GQ_APPNAME);
d1f74154463e Replace occurences of Geeqie / geeqie by constants defined in main.h.
zas_
parents: 283
diff changeset
1371 print_term(msg);
d1f74154463e Replace occurences of Geeqie / geeqie by constants defined in main.h.
zas_
parents: 283
diff changeset
1372 g_free(msg);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1373 msg = g_strdup_printf("!!! compiled with GTK+-%d.%d\n", GTK_MAJOR_VERSION, GTK_MINOR_VERSION);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1374 print_term(msg);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1375 g_free(msg);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1376 msg = g_strdup_printf("!!! running with GTK+-%d.%d\n", gtk_major_version, gtk_minor_version);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1377 print_term(msg);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1378 g_free(msg);
288
d1f74154463e Replace occurences of Geeqie / geeqie by constants defined in main.h.
zas_
parents: 283
diff changeset
1379 msg = g_strdup_printf("!!! %s may quit unexpectedly with a relocation error.\n", GQ_APPNAME);
d1f74154463e Replace occurences of Geeqie / geeqie by constants defined in main.h.
zas_
parents: 283
diff changeset
1380 print_term(msg);
d1f74154463e Replace occurences of Geeqie / geeqie by constants defined in main.h.
zas_
parents: 283
diff changeset
1381 g_free(msg);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1382 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1383
283
e213fb025621 GQVIEW_* -> GQ_*
zas_
parents: 281
diff changeset
1384 check_for_home_path(GQ_RC_DIR);
e213fb025621 GQVIEW_* -> GQ_*
zas_
parents: 281
diff changeset
1385 check_for_home_path(GQ_RC_DIR_COLLECTIONS);
e213fb025621 GQVIEW_* -> GQ_*
zas_
parents: 281
diff changeset
1386 check_for_home_path(GQ_CACHE_RC_THUMB);
e213fb025621 GQVIEW_* -> GQ_*
zas_
parents: 281
diff changeset
1387 check_for_home_path(GQ_CACHE_RC_METADATA);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1388
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1389 keys_load();
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1390 filter_add_defaults();
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1391 filter_rebuild();
145
8be2cc687304 fixed grouping sidecar files and made it configurable via config file
nadvornik
parents: 138
diff changeset
1392
283
e213fb025621 GQVIEW_* -> GQ_*
zas_
parents: 281
diff changeset
1393 buf = g_strconcat(homedir(), "/", GQ_RC_DIR, "/accels", NULL);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1394 bufl = path_from_utf8(buf);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1395 gtk_accel_map_load(bufl);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1396 g_free(bufl);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1397 g_free(buf);
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1398
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1399 if (startup_blank)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1400 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1401 g_free(cmd_path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1402 cmd_path = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1403 g_free(cmd_file);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1404 cmd_file = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1405 path_list_free(cmd_list);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1406 cmd_list = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1407 path_list_free(collection_list);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1408 collection_list = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1409
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1410 path = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1411 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1412 else if (cmd_path)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1413 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1414 path = g_strdup(cmd_path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1415 }
318
b16b9b8979e5 Add a new struct ConfOptions to handle options.
zas_
parents: 289
diff changeset
1416 else if (options->startup_path_enable && options->startup_path && isdir(options->startup_path))
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1417 {
318
b16b9b8979e5 Add a new struct ConfOptions to handle options.
zas_
parents: 289
diff changeset
1418 path = g_strdup(options->startup_path);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1419 }
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1420 else
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1421 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1422 path = get_current_dir();
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1423 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1424
338
41c3cb73120f Rename window options (moved to layout) and re-order rc file.
zas_
parents: 334
diff changeset
1425 lw = layout_new_with_geometry(NULL, options->layout.tools_float, options->layout.tools_hidden, geometry);
329
a51242c032ea Rename file sorting options.
zas_
parents: 327
diff changeset
1426 layout_sort_set(lw, options->file_sort.method, options->file_sort.ascending);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1427
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1428 if (collection_list && !startup_command_line_collection)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1429 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1430 GList *work;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1431
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1432 work = collection_list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1433 while (work)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1434 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1435 CollectWindow *cw;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1436 const gchar *path;
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1437
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1438 path = work->data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1439 work = work->next;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1440
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1441 cw = collection_window_new(path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1442 if (!first_collection && cw) first_collection = cw->cd;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1443 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1444 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1445
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1446 if (cmd_list ||
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1447 (startup_command_line_collection && collection_list))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1448 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1449 CollectionData *cd;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1450 GList *work;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1451
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1452 if (startup_command_line_collection)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1453 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1454 CollectWindow *cw;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1455
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1456 cw = collection_window_new("");
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1457 cd = cw->cd;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1458 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1459 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1460 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1461 cd = collection_new(""); /* if we pass NULL, untitled counter is falsely increm. */
279
5cd386db1e6c gqview_remote -> remote_connection
zas_
parents: 278
diff changeset
1462 command_collection = cd;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1463 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1464
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1465 g_free(cd->path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1466 cd->path = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1467 g_free(cd->name);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1468 cd->name = g_strdup(_("Command line"));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1469
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1470 collection_path_changed(cd);
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1471
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1472 work = cmd_list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1473 while (work)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1474 {
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
1475 collection_add(cd, file_data_new_simple((gchar *)work->data), FALSE);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1476 work = work->next;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1477 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1478
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1479 work = collection_list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1480 while (work)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1481 {
358
384eed18df04 Use flags for collection_load*().
zas_
parents: 354
diff changeset
1482 collection_load(cd, (gchar *)work->data, COLLECTION_LOAD_APPEND);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1483 work = work->next;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1484 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1485
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1486 layout_set_path(lw, path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1487 if (cd->list) layout_image_set_collection(lw, cd, cd->list->data);
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1488
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1489 /* mem leak, we never unref this collection when !startup_command_line_collection
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1490 * (the image view of the main window does not hold a ref to the collection)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1491 * this is sort of unavoidable, for if it did hold a ref, next/back
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1492 * may not work as expected when closing collection windows.
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1493 *
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1494 * collection_unref(cd);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1495 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1496
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1497 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1498 else if (cmd_file)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1499 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1500 layout_set_path(lw, cmd_file);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1501 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1502 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1503 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1504 layout_set_path(lw, path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1505 if (first_collection)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1506 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1507 layout_image_set_collection(lw, first_collection,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1508 collection_get_first(first_collection));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1509 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1510 }
322
d344bcf37618 Rationalize fullscreen options naming.
zas_
parents: 320
diff changeset
1511 image_osd_set(lw->image, FALSE, options->fullscreen.show_info);
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1512
81
0ef72a64930b Thu Oct 19 09:35:18 2006 John Ellis <johne@verizon.net>
gqview
parents: 79
diff changeset
1513 g_free(geometry);
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1514 g_free(cmd_path);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1515 g_free(cmd_file);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1516 path_list_free(cmd_list);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1517 path_list_free(collection_list);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1518 g_free(path);
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1519
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1520 if (startup_full_screen) layout_image_full_screen_start(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1521 if (startup_in_slideshow) layout_image_slideshow_start(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1522
283
e213fb025621 GQVIEW_* -> GQ_*
zas_
parents: 281
diff changeset
1523 buf = g_strconcat(homedir(), "/", GQ_RC_DIR, "/.command", NULL);
279
5cd386db1e6c gqview_remote -> remote_connection
zas_
parents: 278
diff changeset
1524 remote_connection = remote_server_open(buf);
5cd386db1e6c gqview_remote -> remote_connection
zas_
parents: 278
diff changeset
1525 remote_server_subscribe(remote_connection, remote_cb, NULL);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1526 g_free(buf);
3
gqview
parents: 1
diff changeset
1527
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1528 gtk_main ();
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1529 return 0;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1530 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1531