annotate src/slideshow.c @ 2916:ae6cdcd69d9f default tip

Merge with upstream/master.
author Matti Hamalainen <ccr@tnsp.org>
date Tue, 14 May 2019 11:46:50 +0300
parents 95606e2192d1
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
1 /*
2350
95507e596256 Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents: 2185
diff changeset
2 * Copyright (C) 2004 John Ellis
95507e596256 Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents: 2185
diff changeset
3 * Copyright (C) 2008 - 2016 The Geeqie Team
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
4 *
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
5 * Author: John Ellis
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
6 *
2350
95507e596256 Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents: 2185
diff changeset
7 * This program is free software; you can redistribute it and/or modify
95507e596256 Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents: 2185
diff changeset
8 * it under the terms of the GNU General Public License as published by
95507e596256 Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents: 2185
diff changeset
9 * the Free Software Foundation; either version 2 of the License, or
95507e596256 Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents: 2185
diff changeset
10 * (at your option) any later version.
95507e596256 Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents: 2185
diff changeset
11 *
95507e596256 Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents: 2185
diff changeset
12 * This program is distributed in the hope that it will be useful,
95507e596256 Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents: 2185
diff changeset
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
95507e596256 Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents: 2185
diff changeset
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
95507e596256 Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents: 2185
diff changeset
15 * GNU General Public License for more details.
95507e596256 Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents: 2185
diff changeset
16 *
95507e596256 Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents: 2185
diff changeset
17 * You should have received a copy of the GNU General Public License along
95507e596256 Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents: 2185
diff changeset
18 * with this program; if not, write to the Free Software Foundation, Inc.,
95507e596256 Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents: 2185
diff changeset
19 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
20 */
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
21
281
b1c2c2cf19d4 gqview.h -> main.h
Laurent Monin <geeqie@norz.org>
parents: 196
diff changeset
22 #include "main.h"
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
23 #include "collect.h"
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
24 #include "image.h"
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
25 #include "slideshow.h"
586
122fc2223b42 split filelist.c to filefilter.c and filedata.c
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 517
diff changeset
26 #include "filedata.h"
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
27
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
28 #include "layout.h"
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
29 #include "layout_image.h"
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
30 #include "ui_fileops.h"
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
31
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
32
744
5da45c8c2a96 Move code from slideshow_timer_reset() to new slideshow_timer_stop() and simplify calls.
Laurent Monin <geeqie@norz.org>
parents: 736
diff changeset
33 static void slideshow_timer_stop(SlideShowData *ss);
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
34
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
35
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
36 void slideshow_free(SlideShowData *ss)
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
37 {
89
563002fc408b Sat Oct 28 14:41:10 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 9
diff changeset
38 if (!ss) return;
563002fc408b Sat Oct 28 14:41:10 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 9
diff changeset
39
744
5da45c8c2a96 Move code from slideshow_timer_reset() to new slideshow_timer_stop() and simplify calls.
Laurent Monin <geeqie@norz.org>
parents: 736
diff changeset
40 slideshow_timer_stop(ss);
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
41
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
42 if (ss->stop_func) ss->stop_func(ss, ss->stop_data);
3
John Ellis <johne@verizon.net>
parents: 1
diff changeset
43
138
5be5d1c53016 replaced gchar* path with FileData *fd
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 119
diff changeset
44 if (ss->filelist) filelist_free(ss->filelist);
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
45 if (ss->cd) collection_unref(ss->cd);
783
0e45ed008a1c replaced directory path with FileData* dir_fd
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 745
diff changeset
46 file_data_unref(ss->dir_fd);
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
47
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
48 g_list_free(ss->list);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
49 g_list_free(ss->list_done);
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
50
138
5be5d1c53016 replaced gchar* path with FileData *fd
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 119
diff changeset
51 file_data_unref(ss->slide_fd);
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
52
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
53 g_free(ss);
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
54 }
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
55
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
56 static GList *generate_list(SlideShowData *ss)
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
57 {
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
58 GList *list = NULL;
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
59
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
60 if (ss->from_selection)
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
61 {
1627
c3778530b075 use layout_set_fd() for changing images from a slideshow
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
62 list = layout_selection_list_by_index(ss->lw);
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
63 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
64 else
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
65 {
736
31d858f3272d Fix signed vs unsigned warnings.
Laurent Monin <geeqie@norz.org>
parents: 586
diff changeset
66 guint i;
517
f5faee2a188e 6 for() vs 201 for (): winner is for ().
Laurent Monin <geeqie@norz.org>
parents: 516
diff changeset
67 for (i = 0; i < ss->slide_count; i++)
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
68 {
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
69 list = g_list_prepend(list, GINT_TO_POINTER(i));
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
70 }
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
71 list = g_list_reverse(list);
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
72 }
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
73
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
74 return list;
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
75 }
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
76
1281
6c6d99ead2c9 Speed up random slideshow, startup time decreases from minutes to seconds when amount of images is big. Patch by Kjell Morgenstern.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
77 static void ptr_array_add(gpointer data, GPtrArray *array)
6c6d99ead2c9 Speed up random slideshow, startup time decreases from minutes to seconds when amount of images is big. Patch by Kjell Morgenstern.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
78 {
6c6d99ead2c9 Speed up random slideshow, startup time decreases from minutes to seconds when amount of images is big. Patch by Kjell Morgenstern.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
79 g_ptr_array_add(array, data);
6c6d99ead2c9 Speed up random slideshow, startup time decreases from minutes to seconds when amount of images is big. Patch by Kjell Morgenstern.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
80 }
6c6d99ead2c9 Speed up random slideshow, startup time decreases from minutes to seconds when amount of images is big. Patch by Kjell Morgenstern.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
81
6c6d99ead2c9 Speed up random slideshow, startup time decreases from minutes to seconds when amount of images is big. Patch by Kjell Morgenstern.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
82 static void list_prepend(gpointer data, GList **list)
6c6d99ead2c9 Speed up random slideshow, startup time decreases from minutes to seconds when amount of images is big. Patch by Kjell Morgenstern.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
83 {
6c6d99ead2c9 Speed up random slideshow, startup time decreases from minutes to seconds when amount of images is big. Patch by Kjell Morgenstern.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
84 *list = g_list_prepend(*list, data);
6c6d99ead2c9 Speed up random slideshow, startup time decreases from minutes to seconds when amount of images is big. Patch by Kjell Morgenstern.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
85 }
6c6d99ead2c9 Speed up random slideshow, startup time decreases from minutes to seconds when amount of images is big. Patch by Kjell Morgenstern.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
86
6c6d99ead2c9 Speed up random slideshow, startup time decreases from minutes to seconds when amount of images is big. Patch by Kjell Morgenstern.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
87 static GPtrArray *generate_ptr_array_from_list(GList *src_list)
6c6d99ead2c9 Speed up random slideshow, startup time decreases from minutes to seconds when amount of images is big. Patch by Kjell Morgenstern.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
88 {
6c6d99ead2c9 Speed up random slideshow, startup time decreases from minutes to seconds when amount of images is big. Patch by Kjell Morgenstern.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
89 GPtrArray *arr = g_ptr_array_sized_new(g_list_length(src_list));
6c6d99ead2c9 Speed up random slideshow, startup time decreases from minutes to seconds when amount of images is big. Patch by Kjell Morgenstern.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
90
6c6d99ead2c9 Speed up random slideshow, startup time decreases from minutes to seconds when amount of images is big. Patch by Kjell Morgenstern.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
91 g_list_foreach(src_list, (GFunc) ptr_array_add, arr);
6c6d99ead2c9 Speed up random slideshow, startup time decreases from minutes to seconds when amount of images is big. Patch by Kjell Morgenstern.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
92
6c6d99ead2c9 Speed up random slideshow, startup time decreases from minutes to seconds when amount of images is big. Patch by Kjell Morgenstern.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
93 return arr;
6c6d99ead2c9 Speed up random slideshow, startup time decreases from minutes to seconds when amount of images is big. Patch by Kjell Morgenstern.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
94 }
6c6d99ead2c9 Speed up random slideshow, startup time decreases from minutes to seconds when amount of images is big. Patch by Kjell Morgenstern.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
95
6c6d99ead2c9 Speed up random slideshow, startup time decreases from minutes to seconds when amount of images is big. Patch by Kjell Morgenstern.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
96 static void swap(GPtrArray *array, guint index1, guint index2)
6c6d99ead2c9 Speed up random slideshow, startup time decreases from minutes to seconds when amount of images is big. Patch by Kjell Morgenstern.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
97 {
6c6d99ead2c9 Speed up random slideshow, startup time decreases from minutes to seconds when amount of images is big. Patch by Kjell Morgenstern.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
98 gpointer temp = g_ptr_array_index(array, index1);
2185
c14a1d8e6aa4 Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents: 2021
diff changeset
99
1281
6c6d99ead2c9 Speed up random slideshow, startup time decreases from minutes to seconds when amount of images is big. Patch by Kjell Morgenstern.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
100 g_ptr_array_index(array, index1) = g_ptr_array_index(array, index2);
6c6d99ead2c9 Speed up random slideshow, startup time decreases from minutes to seconds when amount of images is big. Patch by Kjell Morgenstern.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
101 g_ptr_array_index(array, index2) = temp;
6c6d99ead2c9 Speed up random slideshow, startup time decreases from minutes to seconds when amount of images is big. Patch by Kjell Morgenstern.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
102 }
6c6d99ead2c9 Speed up random slideshow, startup time decreases from minutes to seconds when amount of images is big. Patch by Kjell Morgenstern.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
103
6c6d99ead2c9 Speed up random slideshow, startup time decreases from minutes to seconds when amount of images is big. Patch by Kjell Morgenstern.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
104 static void ptr_array_random_shuffle(GPtrArray *array)
6c6d99ead2c9 Speed up random slideshow, startup time decreases from minutes to seconds when amount of images is big. Patch by Kjell Morgenstern.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
105 {
6c6d99ead2c9 Speed up random slideshow, startup time decreases from minutes to seconds when amount of images is big. Patch by Kjell Morgenstern.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
106 guint i;
6c6d99ead2c9 Speed up random slideshow, startup time decreases from minutes to seconds when amount of images is big. Patch by Kjell Morgenstern.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
107 for (i = 0; i < array->len; ++i)
6c6d99ead2c9 Speed up random slideshow, startup time decreases from minutes to seconds when amount of images is big. Patch by Kjell Morgenstern.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
108 {
6c6d99ead2c9 Speed up random slideshow, startup time decreases from minutes to seconds when amount of images is big. Patch by Kjell Morgenstern.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
109 guint p = (double)rand() / ((double)RAND_MAX + 1.0) * array->len;
6c6d99ead2c9 Speed up random slideshow, startup time decreases from minutes to seconds when amount of images is big. Patch by Kjell Morgenstern.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
110 swap(array, i, p);
6c6d99ead2c9 Speed up random slideshow, startup time decreases from minutes to seconds when amount of images is big. Patch by Kjell Morgenstern.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
111 }
6c6d99ead2c9 Speed up random slideshow, startup time decreases from minutes to seconds when amount of images is big. Patch by Kjell Morgenstern.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
112 }
6c6d99ead2c9 Speed up random slideshow, startup time decreases from minutes to seconds when amount of images is big. Patch by Kjell Morgenstern.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
113
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
114 static GList *generate_random_list(SlideShowData *ss)
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
115 {
1281
6c6d99ead2c9 Speed up random slideshow, startup time decreases from minutes to seconds when amount of images is big. Patch by Kjell Morgenstern.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
116 GList *src_list;
6c6d99ead2c9 Speed up random slideshow, startup time decreases from minutes to seconds when amount of images is big. Patch by Kjell Morgenstern.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
117 GPtrArray *src_array;
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
118 GList *list = NULL;
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
119
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
120 src_list = generate_list(ss);
1281
6c6d99ead2c9 Speed up random slideshow, startup time decreases from minutes to seconds when amount of images is big. Patch by Kjell Morgenstern.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
121 src_array = generate_ptr_array_from_list(src_list);
6c6d99ead2c9 Speed up random slideshow, startup time decreases from minutes to seconds when amount of images is big. Patch by Kjell Morgenstern.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
122 g_list_free(src_list);
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
123
1281
6c6d99ead2c9 Speed up random slideshow, startup time decreases from minutes to seconds when amount of images is big. Patch by Kjell Morgenstern.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
124 ptr_array_random_shuffle(src_array);
6c6d99ead2c9 Speed up random slideshow, startup time decreases from minutes to seconds when amount of images is big. Patch by Kjell Morgenstern.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
125 g_ptr_array_foreach(src_array, (GFunc) list_prepend, &list);
6c6d99ead2c9 Speed up random slideshow, startup time decreases from minutes to seconds when amount of images is big. Patch by Kjell Morgenstern.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
126 g_ptr_array_free(src_array, TRUE);
2185
c14a1d8e6aa4 Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents: 2021
diff changeset
127
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
128 return list;
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
129 }
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
130
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
131 static void slideshow_list_init(SlideShowData *ss, gint start_index)
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
132 {
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
133 if (ss->list_done)
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
134 {
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
135 g_list_free(ss->list_done);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
136 ss->list_done = NULL;
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
137 }
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
138
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
139 if (ss->list) g_list_free(ss->list);
3
John Ellis <johne@verizon.net>
parents: 1
diff changeset
140
326
a0f3c913e0a7 Rename slideshow options.
Laurent Monin <geeqie@norz.org>
parents: 318
diff changeset
141 if (options->slideshow.random)
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
142 {
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
143 ss->list = generate_random_list(ss);
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
144 }
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
145 else
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
146 {
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
147 ss->list = generate_list(ss);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
148 if (start_index >= 0)
3
John Ellis <johne@verizon.net>
parents: 1
diff changeset
149 {
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
150 /* start with specified image by skipping to it */
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
151 gint i = 0;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
152
516
768d10237b88 Convert the minority of while() to while ().
Laurent Monin <geeqie@norz.org>
parents: 513
diff changeset
153 while (ss->list && i < start_index)
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
154 {
513
6743a5928e09 Remove whitespace between function name and first parenthesis for the sake of consistency. (pass 2)
Laurent Monin <geeqie@norz.org>
parents: 475
diff changeset
155 ss->list_done = g_list_prepend(ss->list_done, ss->list->data);
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
156 ss->list = g_list_remove(ss->list, ss->list->data);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
157 i++;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
158 }
3
John Ellis <johne@verizon.net>
parents: 1
diff changeset
159 }
John Ellis <johne@verizon.net>
parents: 1
diff changeset
160 }
John Ellis <johne@verizon.net>
parents: 1
diff changeset
161 }
John Ellis <johne@verizon.net>
parents: 1
diff changeset
162
1446
12c4e43e82c1 gint -> gboolean.
Laurent Monin <geeqie@norz.org>
parents: 1433
diff changeset
163 gboolean slideshow_should_continue(SlideShowData *ss)
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
164 {
138
5be5d1c53016 replaced gchar* path with FileData *fd
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 119
diff changeset
165 FileData *imd_fd;
783
0e45ed008a1c replaced directory path with FileData* dir_fd
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 745
diff changeset
166 FileData *dir_fd;
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
167
89
563002fc408b Sat Oct 28 14:41:10 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 9
diff changeset
168 if (!ss) return FALSE;
563002fc408b Sat Oct 28 14:41:10 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 9
diff changeset
169
1627
c3778530b075 use layout_set_fd() for changing images from a slideshow
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
170 if (ss->lw)
c3778530b075 use layout_set_fd() for changing images from a slideshow
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
171 imd_fd = layout_image_get_fd(ss->lw);
c3778530b075 use layout_set_fd() for changing images from a slideshow
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
172 else
c3778530b075 use layout_set_fd() for changing images from a slideshow
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
173 imd_fd = image_get_fd(ss->imd);
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
174
138
5be5d1c53016 replaced gchar* path with FileData *fd
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 119
diff changeset
175 if ( ((imd_fd == NULL) != (ss->slide_fd == NULL)) ||
5be5d1c53016 replaced gchar* path with FileData *fd
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 119
diff changeset
176 (imd_fd && ss->slide_fd && imd_fd != ss->slide_fd) ) return FALSE;
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
177
138
5be5d1c53016 replaced gchar* path with FileData *fd
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 119
diff changeset
178 if (ss->filelist) return TRUE;
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
179
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
180 if (ss->cd)
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
181 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
182 if (g_list_length(ss->cd->list) == ss->slide_count)
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
183 return TRUE;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
184 else
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
185 return FALSE;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
186 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
187
1627
c3778530b075 use layout_set_fd() for changing images from a slideshow
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
188 dir_fd = ss->lw->dir_fd;
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
189
783
0e45ed008a1c replaced directory path with FileData* dir_fd
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 745
diff changeset
190 if (dir_fd && ss->dir_fd && dir_fd == ss->dir_fd)
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
191 {
1627
c3778530b075 use layout_set_fd() for changing images from a slideshow
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
192 if (ss->from_selection && ss->slide_count == layout_selection_count(ss->lw, NULL)) return TRUE;
c3778530b075 use layout_set_fd() for changing images from a slideshow
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
193 if (!ss->from_selection && ss->slide_count == layout_list_count(ss->lw, NULL)) return TRUE;
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
194 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
195
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
196 return FALSE;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
197 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
198
1446
12c4e43e82c1 gint -> gboolean.
Laurent Monin <geeqie@norz.org>
parents: 1433
diff changeset
199 static gboolean slideshow_step(SlideShowData *ss, gboolean forward)
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
200 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
201 gint row;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
202
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
203 if (!slideshow_should_continue(ss))
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
204 {
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
205 return FALSE;
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
206 }
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
207
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
208 if (forward)
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
209 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
210 if (!ss->list) return TRUE;
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
211
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
212 row = GPOINTER_TO_INT(ss->list->data);
513
6743a5928e09 Remove whitespace between function name and first parenthesis for the sake of consistency. (pass 2)
Laurent Monin <geeqie@norz.org>
parents: 475
diff changeset
213 ss->list_done = g_list_prepend(ss->list_done, ss->list->data);
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
214 ss->list = g_list_remove(ss->list, ss->list->data);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
215 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
216 else
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
217 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
218 if (!ss->list_done || !ss->list_done->next) return TRUE;
3
John Ellis <johne@verizon.net>
parents: 1
diff changeset
219
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
220 ss->list = g_list_prepend(ss->list, ss->list_done->data);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
221 ss->list_done = g_list_remove(ss->list_done, ss->list_done->data);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
222 row = GPOINTER_TO_INT(ss->list_done->data);
3
John Ellis <johne@verizon.net>
parents: 1
diff changeset
223 }
John Ellis <johne@verizon.net>
parents: 1
diff changeset
224
138
5be5d1c53016 replaced gchar* path with FileData *fd
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 119
diff changeset
225 file_data_unref(ss->slide_fd);
5be5d1c53016 replaced gchar* path with FileData *fd
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 119
diff changeset
226 ss->slide_fd = NULL;
3
John Ellis <johne@verizon.net>
parents: 1
diff changeset
227
138
5be5d1c53016 replaced gchar* path with FileData *fd
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 119
diff changeset
228 if (ss->filelist)
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
229 {
138
5be5d1c53016 replaced gchar* path with FileData *fd
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 119
diff changeset
230 ss->slide_fd = file_data_ref((FileData *)g_list_nth_data(ss->filelist, row));
1627
c3778530b075 use layout_set_fd() for changing images from a slideshow
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
231 if (ss->lw)
c3778530b075 use layout_set_fd() for changing images from a slideshow
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
232 layout_set_fd(ss->lw, ss->slide_fd);
c3778530b075 use layout_set_fd() for changing images from a slideshow
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
233 else
c3778530b075 use layout_set_fd() for changing images from a slideshow
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
234 image_change_fd(ss->imd, ss->slide_fd, image_zoom_get_default(ss->imd));
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
235 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
236 else if (ss->cd)
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
237 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
238 CollectInfo *info;
3
John Ellis <johne@verizon.net>
parents: 1
diff changeset
239
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
240 info = g_list_nth_data(ss->cd->list, row);
138
5be5d1c53016 replaced gchar* path with FileData *fd
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 119
diff changeset
241 ss->slide_fd = file_data_ref(info->fd);
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
242
1627
c3778530b075 use layout_set_fd() for changing images from a slideshow
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
243 if (ss->lw)
c3778530b075 use layout_set_fd() for changing images from a slideshow
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
244 image_change_from_collection(ss->lw->image, ss->cd, info, image_zoom_get_default(ss->lw->image));
c3778530b075 use layout_set_fd() for changing images from a slideshow
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
245 else
c3778530b075 use layout_set_fd() for changing images from a slideshow
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
246 image_change_from_collection(ss->imd, ss->cd, info, image_zoom_get_default(ss->imd));
3
John Ellis <johne@verizon.net>
parents: 1
diff changeset
247 }
John Ellis <johne@verizon.net>
parents: 1
diff changeset
248 else
John Ellis <johne@verizon.net>
parents: 1
diff changeset
249 {
1627
c3778530b075 use layout_set_fd() for changing images from a slideshow
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
250 ss->slide_fd = file_data_ref(layout_list_get_fd(ss->lw, row));
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
251
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
252 if (ss->from_selection)
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
253 {
1627
c3778530b075 use layout_set_fd() for changing images from a slideshow
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
254 layout_set_fd(ss->lw, ss->slide_fd);
c3778530b075 use layout_set_fd() for changing images from a slideshow
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
255 layout_status_update_info(ss->lw, NULL);
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
256 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
257 else
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
258 {
1627
c3778530b075 use layout_set_fd() for changing images from a slideshow
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
259 layout_image_set_index(ss->lw, row);
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
260 }
3
John Ellis <johne@verizon.net>
parents: 1
diff changeset
261 }
John Ellis <johne@verizon.net>
parents: 1
diff changeset
262
326
a0f3c913e0a7 Rename slideshow options.
Laurent Monin <geeqie@norz.org>
parents: 318
diff changeset
263 if (!ss->list && options->slideshow.repeat)
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
264 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
265 slideshow_list_init(ss, -1);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
266 }
3
John Ellis <johne@verizon.net>
parents: 1
diff changeset
267
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
268 if (!ss->list)
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
269 {
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
270 return FALSE;
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
271 }
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
272
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
273 /* read ahead */
1627
c3778530b075 use layout_set_fd() for changing images from a slideshow
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
274 if (options->image.enable_read_ahead && (!ss->lw || ss->from_selection))
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
275 {
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
276 gint r;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
277 if (forward)
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
278 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
279 if (!ss->list) return TRUE;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
280 r = GPOINTER_TO_INT(ss->list->data);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
281 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
282 else
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
283 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
284 if (!ss->list_done || !ss->list_done->next) return TRUE;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
285 r = GPOINTER_TO_INT(ss->list_done->next->data);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
286 }
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
287
138
5be5d1c53016 replaced gchar* path with FileData *fd
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 119
diff changeset
288 if (ss->filelist)
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
289 {
138
5be5d1c53016 replaced gchar* path with FileData *fd
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 119
diff changeset
290 image_prebuffer_set(ss->imd, g_list_nth_data(ss->filelist, r));
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
291 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
292 else if (ss->cd)
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
293 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
294 CollectInfo *info;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
295 info = g_list_nth_data(ss->cd->list, r);
138
5be5d1c53016 replaced gchar* path with FileData *fd
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 119
diff changeset
296 if (info) image_prebuffer_set(ss->imd, info->fd);
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
297 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
298 else if (ss->from_selection)
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
299 {
1627
c3778530b075 use layout_set_fd() for changing images from a slideshow
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
300 image_prebuffer_set(ss->lw->image, layout_list_get_fd(ss->lw, r));
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
301 }
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
302 }
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
303
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
304 return TRUE;
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
305 }
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
306
2590
95606e2192d1 Fix #278: Shortcut to change time between images in slideshow
Colin Clark <colin.clark@cclark.uk>
parents: 2350
diff changeset
307 static void slideshow_timer_reset(SlideShowData *ss);
95606e2192d1 Fix #278: Shortcut to change time between images in slideshow
Colin Clark <colin.clark@cclark.uk>
parents: 2350
diff changeset
308
1446
12c4e43e82c1 gint -> gboolean.
Laurent Monin <geeqie@norz.org>
parents: 1433
diff changeset
309 static gboolean slideshow_loop_cb(gpointer data)
3
John Ellis <johne@verizon.net>
parents: 1
diff changeset
310 {
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
311 SlideShowData *ss = data;
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
312
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
313 if (ss->paused) return TRUE;
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
314
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
315 if (!slideshow_step(ss, TRUE))
3
John Ellis <johne@verizon.net>
parents: 1
diff changeset
316 {
1523
e52aabe8fc7a Fix up event source ids type: gint -> guint.
Laurent Monin <geeqie@norz.org>
parents: 1446
diff changeset
317 ss->timeout_id = 0;
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
318 slideshow_free(ss);
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
319 return FALSE;
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
320 }
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
321
2590
95606e2192d1 Fix #278: Shortcut to change time between images in slideshow
Colin Clark <colin.clark@cclark.uk>
parents: 2350
diff changeset
322 /* Check if the user has changed the timer interval */
95606e2192d1 Fix #278: Shortcut to change time between images in slideshow
Colin Clark <colin.clark@cclark.uk>
parents: 2350
diff changeset
323 slideshow_timer_reset(ss);
95606e2192d1 Fix #278: Shortcut to change time between images in slideshow
Colin Clark <colin.clark@cclark.uk>
parents: 2350
diff changeset
324
1
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
325 return TRUE;
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
326 }
0102f897ed33 Initial revision
John Ellis <johne@verizon.net>
parents:
diff changeset
327
744
5da45c8c2a96 Move code from slideshow_timer_reset() to new slideshow_timer_stop() and simplify calls.
Laurent Monin <geeqie@norz.org>
parents: 736
diff changeset
328 static void slideshow_timer_stop(SlideShowData *ss)
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
329 {
1523
e52aabe8fc7a Fix up event source ids type: gint -> guint.
Laurent Monin <geeqie@norz.org>
parents: 1446
diff changeset
330 if (!ss->timeout_id) return;
744
5da45c8c2a96 Move code from slideshow_timer_reset() to new slideshow_timer_stop() and simplify calls.
Laurent Monin <geeqie@norz.org>
parents: 736
diff changeset
331
5da45c8c2a96 Move code from slideshow_timer_reset() to new slideshow_timer_stop() and simplify calls.
Laurent Monin <geeqie@norz.org>
parents: 736
diff changeset
332 g_source_remove(ss->timeout_id);
1523
e52aabe8fc7a Fix up event source ids type: gint -> guint.
Laurent Monin <geeqie@norz.org>
parents: 1446
diff changeset
333 ss->timeout_id = 0;
744
5da45c8c2a96 Move code from slideshow_timer_reset() to new slideshow_timer_stop() and simplify calls.
Laurent Monin <geeqie@norz.org>
parents: 736
diff changeset
334 }
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
335
744
5da45c8c2a96 Move code from slideshow_timer_reset() to new slideshow_timer_stop() and simplify calls.
Laurent Monin <geeqie@norz.org>
parents: 736
diff changeset
336 static void slideshow_timer_reset(SlideShowData *ss)
5da45c8c2a96 Move code from slideshow_timer_reset() to new slideshow_timer_stop() and simplify calls.
Laurent Monin <geeqie@norz.org>
parents: 736
diff changeset
337 {
5da45c8c2a96 Move code from slideshow_timer_reset() to new slideshow_timer_stop() and simplify calls.
Laurent Monin <geeqie@norz.org>
parents: 736
diff changeset
338 if (options->slideshow.delay < 1) options->slideshow.delay = 1;
5da45c8c2a96 Move code from slideshow_timer_reset() to new slideshow_timer_stop() and simplify calls.
Laurent Monin <geeqie@norz.org>
parents: 736
diff changeset
339
1523
e52aabe8fc7a Fix up event source ids type: gint -> guint.
Laurent Monin <geeqie@norz.org>
parents: 1446
diff changeset
340 if (ss->timeout_id) g_source_remove(ss->timeout_id);
744
5da45c8c2a96 Move code from slideshow_timer_reset() to new slideshow_timer_stop() and simplify calls.
Laurent Monin <geeqie@norz.org>
parents: 736
diff changeset
341 ss->timeout_id = g_timeout_add(options->slideshow.delay * 1000 / SLIDESHOW_SUBSECOND_PRECISION,
5da45c8c2a96 Move code from slideshow_timer_reset() to new slideshow_timer_stop() and simplify calls.
Laurent Monin <geeqie@norz.org>
parents: 736
diff changeset
342 slideshow_loop_cb, ss);
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
343 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
344
745
9f6c4988ce30 slideshow_next(), slideshow_prev(): move code to common slideshow_move(), reducing code redundancy.
Laurent Monin <geeqie@norz.org>
parents: 744
diff changeset
345 static void slideshow_move(SlideShowData *ss, gboolean forward)
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
346 {
89
563002fc408b Sat Oct 28 14:41:10 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 9
diff changeset
347 if (!ss) return;
563002fc408b Sat Oct 28 14:41:10 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 9
diff changeset
348
745
9f6c4988ce30 slideshow_next(), slideshow_prev(): move code to common slideshow_move(), reducing code redundancy.
Laurent Monin <geeqie@norz.org>
parents: 744
diff changeset
349 if (!slideshow_step(ss, forward))
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
350 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
351 slideshow_free(ss);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
352 return;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
353 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
354
744
5da45c8c2a96 Move code from slideshow_timer_reset() to new slideshow_timer_stop() and simplify calls.
Laurent Monin <geeqie@norz.org>
parents: 736
diff changeset
355 slideshow_timer_reset(ss);
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
356 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
357
745
9f6c4988ce30 slideshow_next(), slideshow_prev(): move code to common slideshow_move(), reducing code redundancy.
Laurent Monin <geeqie@norz.org>
parents: 744
diff changeset
358 void slideshow_next(SlideShowData *ss)
9f6c4988ce30 slideshow_next(), slideshow_prev(): move code to common slideshow_move(), reducing code redundancy.
Laurent Monin <geeqie@norz.org>
parents: 744
diff changeset
359 {
9f6c4988ce30 slideshow_next(), slideshow_prev(): move code to common slideshow_move(), reducing code redundancy.
Laurent Monin <geeqie@norz.org>
parents: 744
diff changeset
360 slideshow_move(ss, TRUE);
9f6c4988ce30 slideshow_next(), slideshow_prev(): move code to common slideshow_move(), reducing code redundancy.
Laurent Monin <geeqie@norz.org>
parents: 744
diff changeset
361 }
9f6c4988ce30 slideshow_next(), slideshow_prev(): move code to common slideshow_move(), reducing code redundancy.
Laurent Monin <geeqie@norz.org>
parents: 744
diff changeset
362
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
363 void slideshow_prev(SlideShowData *ss)
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
364 {
745
9f6c4988ce30 slideshow_next(), slideshow_prev(): move code to common slideshow_move(), reducing code redundancy.
Laurent Monin <geeqie@norz.org>
parents: 744
diff changeset
365 slideshow_move(ss, FALSE);
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
366 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
367
1627
c3778530b075 use layout_set_fd() for changing images from a slideshow
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
368 static SlideShowData *real_slideshow_start(LayoutWindow *target_lw, ImageWindow *imd,
138
5be5d1c53016 replaced gchar* path with FileData *fd
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 119
diff changeset
369 GList *filelist, gint start_point,
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
370 CollectionData *cd, CollectInfo *start_info,
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
371 void (*stop_func)(SlideShowData *, gpointer), gpointer stop_data)
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
372 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
373 SlideShowData *ss;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
374 gint start_index = -1;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
375
1627
c3778530b075 use layout_set_fd() for changing images from a slideshow
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
376 if (!filelist && !cd && layout_list_count(target_lw, NULL) < 1) return NULL;
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
377
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
378 ss = g_new0(SlideShowData, 1);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
379
1627
c3778530b075 use layout_set_fd() for changing images from a slideshow
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
380 ss->lw = target_lw;
c3778530b075 use layout_set_fd() for changing images from a slideshow
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
381 ss->imd = imd; /* FIXME: ss->imd is used only for img-view.c and can be dropped with it */
138
5be5d1c53016 replaced gchar* path with FileData *fd
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 119
diff changeset
382 ss->filelist = filelist;
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
383 ss->cd = cd;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
384
138
5be5d1c53016 replaced gchar* path with FileData *fd
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 119
diff changeset
385 if (ss->filelist)
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
386 {
138
5be5d1c53016 replaced gchar* path with FileData *fd
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 119
diff changeset
387 ss->slide_count = g_list_length(ss->filelist);
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
388 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
389 else if (ss->cd)
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
390 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
391 collection_ref(ss->cd);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
392 ss->slide_count = g_list_length(ss->cd->list);
326
a0f3c913e0a7 Rename slideshow options.
Laurent Monin <geeqie@norz.org>
parents: 318
diff changeset
393 if (!options->slideshow.random && start_info)
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
394 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
395 start_index = g_list_index(ss->cd->list, start_info);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
396 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
397 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
398 else
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
399 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
400 /* layout method */
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
401
1627
c3778530b075 use layout_set_fd() for changing images from a slideshow
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
402 ss->slide_count = layout_selection_count(ss->lw, NULL);
c3778530b075 use layout_set_fd() for changing images from a slideshow
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
403 ss->dir_fd = file_data_ref(ss->lw->dir_fd);
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
404 if (ss->slide_count < 2)
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
405 {
1627
c3778530b075 use layout_set_fd() for changing images from a slideshow
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
406 ss->slide_count = layout_list_count(ss->lw, NULL);
736
31d858f3272d Fix signed vs unsigned warnings.
Laurent Monin <geeqie@norz.org>
parents: 586
diff changeset
407 if (!options->slideshow.random && start_point >= 0 && (guint) start_point < ss->slide_count)
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
408 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
409 start_index = start_point;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
410 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
411 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
412 else
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
413 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
414 ss->from_selection = TRUE;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
415 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
416 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
417
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
418 slideshow_list_init(ss, start_index);
2185
c14a1d8e6aa4 Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents: 2021
diff changeset
419
1627
c3778530b075 use layout_set_fd() for changing images from a slideshow
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
420 if (ss->lw)
c3778530b075 use layout_set_fd() for changing images from a slideshow
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
421 ss->slide_fd = file_data_ref(layout_image_get_fd(ss->lw));
c3778530b075 use layout_set_fd() for changing images from a slideshow
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
422 else
c3778530b075 use layout_set_fd() for changing images from a slideshow
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
423 ss->slide_fd = file_data_ref(image_get_fd(ss->imd));
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
424
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
425 if (slideshow_step(ss, TRUE))
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
426 {
744
5da45c8c2a96 Move code from slideshow_timer_reset() to new slideshow_timer_stop() and simplify calls.
Laurent Monin <geeqie@norz.org>
parents: 736
diff changeset
427 slideshow_timer_reset(ss);
119
2bc92ee6cd29 Thu Nov 30 09:55:42 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 89
diff changeset
428
2bc92ee6cd29 Thu Nov 30 09:55:42 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 89
diff changeset
429 ss->stop_func = stop_func;
2bc92ee6cd29 Thu Nov 30 09:55:42 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 89
diff changeset
430 ss->stop_data = stop_data;
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
431 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
432 else
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
433 {
119
2bc92ee6cd29 Thu Nov 30 09:55:42 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents: 89
diff changeset
434 slideshow_free(ss);
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
435 ss = NULL;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
436 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
437
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
438 return ss;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
439 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
440
1627
c3778530b075 use layout_set_fd() for changing images from a slideshow
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
441 SlideShowData *slideshow_start_from_filelist(LayoutWindow *target_lw, ImageWindow *imd, GList *list,
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
442 void (*stop_func)(SlideShowData *, gpointer), gpointer stop_data)
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
443 {
1627
c3778530b075 use layout_set_fd() for changing images from a slideshow
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
444 return real_slideshow_start(target_lw, imd, list, -1, NULL, NULL, stop_func, stop_data);
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
445 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
446
1627
c3778530b075 use layout_set_fd() for changing images from a slideshow
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
447 SlideShowData *slideshow_start_from_collection(LayoutWindow *target_lw, ImageWindow *imd, CollectionData *cd,
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
448 void (*stop_func)(SlideShowData *, gpointer), gpointer stop_data,
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
449 CollectInfo *start_info)
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
450 {
1627
c3778530b075 use layout_set_fd() for changing images from a slideshow
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
451 return real_slideshow_start(target_lw, imd, NULL, -1, cd, start_info, stop_func, stop_data);
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
452 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
453
1627
c3778530b075 use layout_set_fd() for changing images from a slideshow
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
454 SlideShowData *slideshow_start(LayoutWindow *lw, gint start_point,
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
455 void (*stop_func)(SlideShowData *, gpointer), gpointer stop_data)
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
456 {
1627
c3778530b075 use layout_set_fd() for changing images from a slideshow
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
457 return real_slideshow_start(lw, NULL, NULL, start_point, NULL, NULL, stop_func, stop_data);
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
458 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
459
1433
12600de4b59a Use gboolean where applicable, minor cleanup and indentations fixes.
Laurent Monin <geeqie@norz.org>
parents: 1365
diff changeset
460 gboolean slideshow_paused(SlideShowData *ss)
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
461 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
462 if (!ss) return FALSE;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
463
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
464 return ss->paused;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
465 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
466
1433
12600de4b59a Use gboolean where applicable, minor cleanup and indentations fixes.
Laurent Monin <geeqie@norz.org>
parents: 1365
diff changeset
467 void slideshow_pause_set(SlideShowData *ss, gboolean paused)
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
468 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
469 if (!ss) return;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
470
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
471 ss->paused = paused;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
472 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
473
1433
12600de4b59a Use gboolean where applicable, minor cleanup and indentations fixes.
Laurent Monin <geeqie@norz.org>
parents: 1365
diff changeset
474 gboolean slideshow_pause_toggle(SlideShowData *ss)
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
475 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
476 slideshow_pause_set(ss, !slideshow_paused(ss));
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
477 return slideshow_paused(ss);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents: 3
diff changeset
478 }
1055
4bbdfab3c89a Adding a vim modeline to all files - patch by Klaus Ethgen
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1000
diff changeset
479 /* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */