annotate src/view_file_icon.c @ 1506:d352a44545a6

Force thumbnails refreshing when thumbnails dimensions are modified through Preferences.
author zas_
date Thu, 02 Apr 2009 23:11:07 +0000
parents 331e2d60d447
children 2c25cb0eca57
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1 /*
196
f6e307c7bad6 rename GQview -> Geeqie over the code
nadvornik
parents: 167
diff changeset
2 * Geeqie
111
3a69a7a3f461 Wed Nov 15 02:05:27 2006 John Ellis <johne@verizon.net>
gqview
parents: 85
diff changeset
3 * (C) 2006 John Ellis
1284
8b89e3ff286b Add year 2009 to copyright info everywhere.
zas_
parents: 1264
diff changeset
4 * Copyright (C) 2008 - 2009 The Geeqie Team
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
5 *
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
6 * Author: John Ellis
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
7 *
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
8 * This software is released under the GNU General Public License (GNU GPL).
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
9 * Please read the included file COPYING for more information.
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
10 * This software comes with no warranty of any kind, use at your own risk!
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
11 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
12
281
9995c5fb202a gqview.h -> main.h
zas_
parents: 272
diff changeset
13 #include "main.h"
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
14 #include "view_file_icon.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
15
1291
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents: 1284
diff changeset
16 #include "bar.h"
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
17 #include "cellrenderericon.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
18 #include "collect.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
19 #include "collect-io.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
20 #include "collect-table.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
21 #include "dnd.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
22 #include "editors.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
23 #include "img-view.h"
586
905688aa2317 split filelist.c to filefilter.c and filedata.c
nadvornik
parents: 585
diff changeset
24 #include "filedata.h"
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
25 #include "layout.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
26 #include "layout_image.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
27 #include "menu.h"
1202
8bf3fff49ddd Allow to drag keywords on files in list or icon view. Dragged text is appended to keywords list of the destination file.
zas_
parents: 1164
diff changeset
28 #include "metadata.h"
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
29 #include "thumb.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
30 #include "utilops.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
31 #include "ui_fileops.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
32 #include "ui_menu.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
33 #include "ui_tree_edit.h"
904
1698baa37871 Move uri_*() functions to separate files: uri_utils.[ch]
zas_
parents: 852
diff changeset
34 #include "uri_utils.h"
633
fe700864cb5a Use vf_* functions where possible.
zas_
parents: 632
diff changeset
35 #include "view_file.h"
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
36
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
37 #include <gdk/gdkkeysyms.h> /* for keyboard values */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
38
557
d8d61dc4ff52 Introduce ViewFileInfoList and ViewFileInfoIcon (not used yet).
zas_
parents: 516
diff changeset
39
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
40 /* between these, the icon width is increased by thumb_max_width / 2 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
41 #define THUMB_MIN_ICON_WIDTH 128
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
42 #define THUMB_MAX_ICON_WIDTH 150
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
43
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
44 #define VFICON_MAX_COLUMNS 32
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
45 #define THUMB_BORDER_PADDING 2
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
46
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
47 #define VFICON_TIP_DELAY 500
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
48
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
49 enum {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
50 FILE_COLUMN_POINTER = 0,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
51 FILE_COLUMN_COUNT
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
52 };
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
53
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
54 typedef enum {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
55 SELECTION_NONE = 0,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
56 SELECTION_SELECTED = 1 << 0,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
57 SELECTION_PRELIGHT = 1 << 1,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
58 SELECTION_FOCUS = 1 << 2
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
59 } SelectionType;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
60
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
61 typedef struct _IconData IconData;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
62 struct _IconData
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
63 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
64 SelectionType selected;
111
3a69a7a3f461 Wed Nov 15 02:05:27 2006 John Ellis <johne@verizon.net>
gqview
parents: 85
diff changeset
65 gint row;
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
66 FileData *fd;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
67 };
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
68
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
69 static gint vficon_index_by_id(ViewFile *vf, IconData *in_id);
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
70
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
71 static IconData *vficon_icon_data(ViewFile *vf, FileData *fd)
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
72 {
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
73 IconData *id = NULL;
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
74 GList *work;
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
75
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
76 if (!fd) return NULL;
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
77 work = vf->list;
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
78 while (work && !id)
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
79 {
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
80 IconData *chk = work->data;
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
81 work = work->next;
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
82 if (chk->fd == fd) id = chk;
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
83 }
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
84 return id;
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
85 }
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
86
812
d29c2d191c58 use vficon_refresh for updating
nadvornik
parents: 811
diff changeset
87 #if 0
d29c2d191c58 use vficon_refresh for updating
nadvornik
parents: 811
diff changeset
88 /* not used */
783
d6a7fb4b8e7c replaced directory path with FileData* dir_fd
nadvornik
parents: 763
diff changeset
89 static gint iconlist_read(FileData *dir_fd, GList **list)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
90 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
91 GList *temp;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
92 GList *work;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
93
783
d6a7fb4b8e7c replaced directory path with FileData* dir_fd
nadvornik
parents: 763
diff changeset
94 if (!filelist_read(dir_fd, &temp, NULL)) return FALSE;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
95
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
96 work = temp;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
97 while (work)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
98 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
99 FileData *fd;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
100 IconData *id;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
101
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
102 fd = work->data;
442
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 380
diff changeset
103 g_assert(fd->magick == 0x12345678);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
104 id = g_new0(IconData, 1);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
105
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
106 id->selected = SELECTION_NONE;
111
3a69a7a3f461 Wed Nov 15 02:05:27 2006 John Ellis <johne@verizon.net>
gqview
parents: 85
diff changeset
107 id->row = -1;
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
108 id->fd = fd;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
109
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
110 work->data = id;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
111 work = work->next;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
112 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
113
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
114 *list = temp;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
115
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
116 return TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
117 }
812
d29c2d191c58 use vficon_refresh for updating
nadvornik
parents: 811
diff changeset
118 #endif
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
119
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
120 static void iconlist_free(GList *list)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
121 {
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
122 GList *work = list;
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
123 while (work)
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
124 {
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
125 IconData *id = work->data;
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
126 file_data_unref(id->fd);
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
127 g_free(id);
442
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 380
diff changeset
128 work = work->next;
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 380
diff changeset
129 }
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 380
diff changeset
130
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 380
diff changeset
131 g_list_free(list);
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
132
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
133 }
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
134
1002
3096a47232ec Use gpointer instead of void *.
zas_
parents: 996
diff changeset
135 gint iconlist_sort_file_cb(gpointer a, gpointer b)
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
136 {
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
137 IconData *ida = a;
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
138 IconData *idb = b;
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
139 return filelist_sort_compare_filedata(ida->fd, idb->fd);
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
140 }
633
fe700864cb5a Use vf_* functions where possible.
zas_
parents: 632
diff changeset
141
1453
bc3f5c0432f6 gint -> gboolean where applicable. The end (ouf!).
zas_
parents: 1437
diff changeset
142 GList *iconlist_sort(GList *list, SortType method, gboolean ascend)
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
143 {
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
144 return filelist_sort_full(list, method, ascend, (GCompareFunc) iconlist_sort_file_cb);
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
145 }
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
146
1453
bc3f5c0432f6 gint -> gboolean where applicable. The end (ouf!).
zas_
parents: 1437
diff changeset
147 GList *iconlist_insert_sort(GList *list, IconData *id, SortType method, gboolean ascend)
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
148 {
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
149 return filelist_insert_sort_full(list, id, method, ascend, (GCompareFunc) iconlist_sort_file_cb);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
150 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
151
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
152
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
153 static void vficon_toggle_filenames(ViewFile *vf);
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
154 static void vficon_selection_remove(ViewFile *vf, IconData *id, SelectionType mask, GtkTreeIter *iter);
1453
bc3f5c0432f6 gint -> gboolean where applicable. The end (ouf!).
zas_
parents: 1437
diff changeset
155 static void vficon_move_focus(ViewFile *vf, gint row, gint col, gboolean relative);
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
156 static void vficon_set_focus(ViewFile *vf, IconData *id);
1453
bc3f5c0432f6 gint -> gboolean where applicable. The end (ouf!).
zas_
parents: 1437
diff changeset
157 static void vficon_populate_at_new_size(ViewFile *vf, gint w, gint h, gboolean force);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
158
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
159
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
160 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
161 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
162 * pop-up menu
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
163 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
164 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
165
634
92208e71673b Introduce vf_pop_menu_file_list() as a wrapper to
zas_
parents: 633
diff changeset
166 GList *vficon_pop_menu_file_list(ViewFile *vf)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
167 {
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
168 if (!VFICON(vf)->click_id) return NULL;
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
169
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
170 if (VFICON(vf)->click_id->selected & SELECTION_SELECTED)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
171 {
633
fe700864cb5a Use vf_* functions where possible.
zas_
parents: 632
diff changeset
172 return vf_selection_get_list(vf);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
173 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
174
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
175 return g_list_append(NULL, file_data_ref(VFICON(vf)->click_id->fd));
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
176 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
177
637
8a1202efa51e Add some wrapper functions for not yet common code.
zas_
parents: 635
diff changeset
178 void vficon_pop_menu_view_cb(GtkWidget *widget, gpointer data)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
179 {
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
180 ViewFile *vf = data;
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
181
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
182 if (!VFICON(vf)->click_id) return;
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
183
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
184 if (VFICON(vf)->click_id->selected & SELECTION_SELECTED)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
185 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
186 GList *list;
442
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 380
diff changeset
187
633
fe700864cb5a Use vf_* functions where possible.
zas_
parents: 632
diff changeset
188 list = vf_selection_get_list(vf);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
189 view_window_new_from_list(list);
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
190 filelist_free(list);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
191 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
192 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
193 {
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
194 view_window_new(VFICON(vf)->click_id->fd);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
195 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
196 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
197
637
8a1202efa51e Add some wrapper functions for not yet common code.
zas_
parents: 635
diff changeset
198 void vficon_pop_menu_rename_cb(GtkWidget *widget, gpointer data)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
199 {
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
200 ViewFile *vf = data;
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
201
634
92208e71673b Introduce vf_pop_menu_file_list() as a wrapper to
zas_
parents: 633
diff changeset
202 file_util_rename(NULL, vf_pop_menu_file_list(vf), vf->listview);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
203 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
204
659
542bb47fef04 Merge vflist_pop_menu() and vficon_pop_menu() into vf_pop_menu().
zas_
parents: 658
diff changeset
205 void vficon_pop_menu_show_names_cb(GtkWidget *widget, gpointer data)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
206 {
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
207 ViewFile *vf = data;
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
208
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
209 vficon_toggle_filenames(vf);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
210 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
211
637
8a1202efa51e Add some wrapper functions for not yet common code.
zas_
parents: 635
diff changeset
212 void vficon_pop_menu_refresh_cb(GtkWidget *widget, gpointer data)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
213 {
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
214 ViewFile *vf = data;
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
215
633
fe700864cb5a Use vf_* functions where possible.
zas_
parents: 632
diff changeset
216 vf_refresh(vf);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
217 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
218
637
8a1202efa51e Add some wrapper functions for not yet common code.
zas_
parents: 635
diff changeset
219 void vficon_popup_destroy_cb(GtkWidget *widget, gpointer data)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
220 {
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
221 ViewFile *vf = data;
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
222 vficon_selection_remove(vf, VFICON(vf)->click_id, SELECTION_PRELIGHT, NULL);
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
223 VFICON(vf)->click_id = NULL;
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
224 vf->popup = NULL;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
225 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
226
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
227 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
228 *-------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
229 * signals
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
230 *-------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
231 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
232
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
233 static void vficon_send_layout_select(ViewFile *vf, IconData *id)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
234 {
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
235 FileData *read_ahead_fd = NULL;
144
2310066cc55a fixed preloading images in file list
nadvornik
parents: 140
diff changeset
236 FileData *sel_fd;
2310066cc55a fixed preloading images in file list
nadvornik
parents: 140
diff changeset
237 FileData *cur_fd;
2310066cc55a fixed preloading images in file list
nadvornik
parents: 140
diff changeset
238
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
239 if (!vf->layout || !id || !id->fd) return;
144
2310066cc55a fixed preloading images in file list
nadvornik
parents: 140
diff changeset
240
2310066cc55a fixed preloading images in file list
nadvornik
parents: 140
diff changeset
241 sel_fd = id->fd;
442
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 380
diff changeset
242
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
243 cur_fd = layout_image_get_fd(vf->layout);
144
2310066cc55a fixed preloading images in file list
nadvornik
parents: 140
diff changeset
244 if (sel_fd == cur_fd) return; /* no change */
442
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 380
diff changeset
245
334
df868b947aa0 Rename image-related options.
zas_
parents: 333
diff changeset
246 if (options->image.enable_read_ahead)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
247 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
248 gint row;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
249
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
250 row = g_list_index(vf->list, id);
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
251 if (row > vficon_index_by_fd(vf, cur_fd) &&
736
a7289f9e8d29 Fix signed vs unsigned warnings.
zas_
parents: 671
diff changeset
252 (guint) (row + 1) < vf_count(vf, NULL))
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
253 {
633
fe700864cb5a Use vf_* functions where possible.
zas_
parents: 632
diff changeset
254 read_ahead_fd = vf_index_get_data(vf, row + 1);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
255 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
256 else if (row > 0)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
257 {
633
fe700864cb5a Use vf_* functions where possible.
zas_
parents: 632
diff changeset
258 read_ahead_fd = vf_index_get_data(vf, row - 1);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
259 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
260 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
261
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
262 layout_image_set_with_ahead(vf->layout, sel_fd, read_ahead_fd);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
263 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
264
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
265 static void vficon_toggle_filenames(ViewFile *vf)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
266 {
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
267 VFICON(vf)->show_text = !VFICON(vf)->show_text;
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
268 options->show_icon_names = VFICON(vf)->show_text;
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
269
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
270 vficon_populate_at_new_size(vf, vf->listview->allocation.width, vf->listview->allocation.height, TRUE);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
271 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
272
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
273 static gint vficon_get_icon_width(ViewFile *vf)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
274 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
275 gint width;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
276
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
277 if (!VFICON(vf)->show_text) return options->thumbnails.max_width;
333
767b53cd9ab7 Rename thumbnails related options.
zas_
parents: 330
diff changeset
278
767b53cd9ab7 Rename thumbnails related options.
zas_
parents: 330
diff changeset
279 width = options->thumbnails.max_width + options->thumbnails.max_width / 2;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
280 if (width < THUMB_MIN_ICON_WIDTH) width = THUMB_MIN_ICON_WIDTH;
333
767b53cd9ab7 Rename thumbnails related options.
zas_
parents: 330
diff changeset
281 if (width > THUMB_MAX_ICON_WIDTH) width = options->thumbnails.max_width;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
282
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
283 return width;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
284 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
285
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
286 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
287 *-------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
288 * misc utils
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
289 *-------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
290 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
291
1453
bc3f5c0432f6 gint -> gboolean where applicable. The end (ouf!).
zas_
parents: 1437
diff changeset
292 static gboolean vficon_find_position(ViewFile *vf, IconData *id, gint *row, gint *col)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
293 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
294 gint n;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
295
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
296 n = g_list_index(vf->list, id);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
297
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
298 if (n < 0) return FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
299
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
300 *row = n / VFICON(vf)->columns;
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
301 *col = n - (*row * VFICON(vf)->columns);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
302
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
303 return TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
304 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
305
1453
bc3f5c0432f6 gint -> gboolean where applicable. The end (ouf!).
zas_
parents: 1437
diff changeset
306 static gboolean vficon_find_iter(ViewFile *vf, IconData *id, GtkTreeIter *iter, gint *column)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
307 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
308 GtkTreeModel *store;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
309 gint row, col;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
310
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
311 store = gtk_tree_view_get_model(GTK_TREE_VIEW(vf->listview));
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
312 if (!vficon_find_position(vf, id, &row, &col)) return FALSE;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
313 if (!gtk_tree_model_iter_nth_child(store, iter, NULL, row)) return FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
314 if (column) *column = col;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
315
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
316 return TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
317 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
318
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
319 static IconData *vficon_find_data(ViewFile *vf, gint row, gint col, GtkTreeIter *iter)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
320 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
321 GtkTreeModel *store;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
322 GtkTreeIter p;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
323
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
324 if (row < 0 || col < 0) return NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
325
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
326 store = gtk_tree_view_get_model(GTK_TREE_VIEW(vf->listview));
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
327 if (gtk_tree_model_iter_nth_child(store, &p, NULL, row))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
328 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
329 GList *list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
330
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
331 gtk_tree_model_get(store, &p, FILE_COLUMN_POINTER, &list, -1);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
332 if (!list) return NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
333
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
334 if (iter) *iter = p;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
335
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
336 return g_list_nth_data(list, col);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
337 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
338
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
339 return NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
340 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
341
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
342 static IconData *vficon_find_data_by_coord(ViewFile *vf, gint x, gint y, GtkTreeIter *iter)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
343 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
344 GtkTreePath *tpath;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
345 GtkTreeViewColumn *column;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
346
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
347 if (gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(vf->listview), x, y,
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
348 &tpath, &column, NULL, NULL))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
349 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
350 GtkTreeModel *store;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
351 GtkTreeIter row;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
352 GList *list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
353 gint n;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
354
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
355 store = gtk_tree_view_get_model(GTK_TREE_VIEW(vf->listview));
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
356 gtk_tree_model_get_iter(store, &row, tpath);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
357 gtk_tree_path_free(tpath);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
358
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
359 gtk_tree_model_get(store, &row, FILE_COLUMN_POINTER, &list, -1);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
360
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
361 n = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(column), "column_number"));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
362 if (list)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
363 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
364 if (iter) *iter = row;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
365 return g_list_nth_data(list, n);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
366 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
367 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
368
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
369 return NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
370 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
371
966
c24a297efbef marks in iconview made clickable
nadvornik
parents: 964
diff changeset
372 static void vficon_mark_toggled_cb(GtkCellRendererToggle *cell, gchar *path_str, gpointer data)
c24a297efbef marks in iconview made clickable
nadvornik
parents: 964
diff changeset
373 {
c24a297efbef marks in iconview made clickable
nadvornik
parents: 964
diff changeset
374 ViewFile *vf = data;
c24a297efbef marks in iconview made clickable
nadvornik
parents: 964
diff changeset
375 GtkTreeModel *store;
c24a297efbef marks in iconview made clickable
nadvornik
parents: 964
diff changeset
376 GtkTreePath *path = gtk_tree_path_new_from_string(path_str);
c24a297efbef marks in iconview made clickable
nadvornik
parents: 964
diff changeset
377 GtkTreeIter row;
c24a297efbef marks in iconview made clickable
nadvornik
parents: 964
diff changeset
378 gint column;
c24a297efbef marks in iconview made clickable
nadvornik
parents: 964
diff changeset
379 GList *list;
c24a297efbef marks in iconview made clickable
nadvornik
parents: 964
diff changeset
380 guint toggled_mark;
967
eb5dbdff14f6 Move variable declaration at start of block.
zas_
parents: 966
diff changeset
381 IconData *id;
966
c24a297efbef marks in iconview made clickable
nadvornik
parents: 964
diff changeset
382
c24a297efbef marks in iconview made clickable
nadvornik
parents: 964
diff changeset
383 store = gtk_tree_view_get_model(GTK_TREE_VIEW(vf->listview));
c24a297efbef marks in iconview made clickable
nadvornik
parents: 964
diff changeset
384 if (!path || !gtk_tree_model_get_iter(store, &row, path))
995
6ca2c5fd7b13 Whitespaces cleanup.
zas_
parents: 968
diff changeset
385 return;
966
c24a297efbef marks in iconview made clickable
nadvornik
parents: 964
diff changeset
386
c24a297efbef marks in iconview made clickable
nadvornik
parents: 964
diff changeset
387 gtk_tree_model_get(store, &row, FILE_COLUMN_POINTER, &list, -1);
c24a297efbef marks in iconview made clickable
nadvornik
parents: 964
diff changeset
388
c24a297efbef marks in iconview made clickable
nadvornik
parents: 964
diff changeset
389 column = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(cell), "column_number"));
c24a297efbef marks in iconview made clickable
nadvornik
parents: 964
diff changeset
390 g_object_get(G_OBJECT(cell), "toggled_mark", &toggled_mark, NULL);
c24a297efbef marks in iconview made clickable
nadvornik
parents: 964
diff changeset
391
967
eb5dbdff14f6 Move variable declaration at start of block.
zas_
parents: 966
diff changeset
392 id = g_list_nth_data(list, column);
966
c24a297efbef marks in iconview made clickable
nadvornik
parents: 964
diff changeset
393 if (id)
c24a297efbef marks in iconview made clickable
nadvornik
parents: 964
diff changeset
394 {
c24a297efbef marks in iconview made clickable
nadvornik
parents: 964
diff changeset
395 FileData *fd = id->fd;
c24a297efbef marks in iconview made clickable
nadvornik
parents: 964
diff changeset
396 file_data_set_mark(fd, toggled_mark, !file_data_get_mark(fd, toggled_mark));
c24a297efbef marks in iconview made clickable
nadvornik
parents: 964
diff changeset
397 }
c24a297efbef marks in iconview made clickable
nadvornik
parents: 964
diff changeset
398 }
c24a297efbef marks in iconview made clickable
nadvornik
parents: 964
diff changeset
399
c24a297efbef marks in iconview made clickable
nadvornik
parents: 964
diff changeset
400
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
401 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
402 *-------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
403 * tooltip type window
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
404 *-------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
405 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
406
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
407 static void tip_show(ViewFile *vf)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
408 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
409 GtkWidget *label;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
410 gint x, y;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
411
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
412 if (VFICON(vf)->tip_window) return;
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
413
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
414 gdk_window_get_pointer(gtk_tree_view_get_bin_window(GTK_TREE_VIEW(vf->listview)), &x, &y, NULL);
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
415
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
416 VFICON(vf)->tip_id = vficon_find_data_by_coord(vf, x, y, NULL);
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
417 if (!VFICON(vf)->tip_id) return;
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
418
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
419 VFICON(vf)->tip_window = gtk_window_new(GTK_WINDOW_POPUP);
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
420 gtk_window_set_resizable(GTK_WINDOW(VFICON(vf)->tip_window), FALSE);
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
421 gtk_container_set_border_width(GTK_CONTAINER(VFICON(vf)->tip_window), 2);
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
422
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
423 label = gtk_label_new(VFICON(vf)->tip_id->fd->name);
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
424
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
425 g_object_set_data(G_OBJECT(VFICON(vf)->tip_window), "tip_label", label);
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
426 gtk_container_add(GTK_CONTAINER(VFICON(vf)->tip_window), label);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
427 gtk_widget_show(label);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
428
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
429 gdk_window_get_pointer(NULL, &x, &y, NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
430
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
431 if (!GTK_WIDGET_REALIZED(VFICON(vf)->tip_window)) gtk_widget_realize(VFICON(vf)->tip_window);
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
432 gtk_window_move(GTK_WINDOW(VFICON(vf)->tip_window), x + 16, y + 16);
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
433 gtk_widget_show(VFICON(vf)->tip_window);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
434 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
435
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
436 static void tip_hide(ViewFile *vf)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
437 {
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
438 if (VFICON(vf)->tip_window) gtk_widget_destroy(VFICON(vf)->tip_window);
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
439 VFICON(vf)->tip_window = NULL;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
440 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
441
1453
bc3f5c0432f6 gint -> gboolean where applicable. The end (ouf!).
zas_
parents: 1437
diff changeset
442 static gboolean tip_schedule_cb(gpointer data)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
443 {
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
444 ViewFile *vf = data;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
445 GtkWidget *window;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
446
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
447 if (VFICON(vf)->tip_delay_id == -1) return FALSE;
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
448
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
449 window = gtk_widget_get_toplevel(vf->listview);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
450
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
451 if (GTK_WIDGET_SENSITIVE(window) &&
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
452 GTK_WINDOW(window)->has_focus)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
453 {
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
454 tip_show(vf);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
455 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
456
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
457 VFICON(vf)->tip_delay_id = -1;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
458 return FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
459 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
460
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
461 static void tip_schedule(ViewFile *vf)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
462 {
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
463 tip_hide(vf);
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
464
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
465 if (VFICON(vf)->tip_delay_id != -1)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
466 {
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
467 g_source_remove(VFICON(vf)->tip_delay_id);
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
468 VFICON(vf)->tip_delay_id = -1;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
469 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
470
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
471 if (!VFICON(vf)->show_text)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
472 {
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
473 VFICON(vf)->tip_delay_id = g_timeout_add(VFICON_TIP_DELAY, tip_schedule_cb, vf);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
474 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
475 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
476
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
477 static void tip_unschedule(ViewFile *vf)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
478 {
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
479 tip_hide(vf);
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
480
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
481 if (VFICON(vf)->tip_delay_id != -1) g_source_remove(VFICON(vf)->tip_delay_id);
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
482 VFICON(vf)->tip_delay_id = -1;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
483 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
484
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
485 static void tip_update(ViewFile *vf, IconData *id)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
486 {
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
487 if (VFICON(vf)->tip_window)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
488 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
489 gint x, y;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
490
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
491 gdk_window_get_pointer(NULL, &x, &y, NULL);
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
492 gtk_window_move(GTK_WINDOW(VFICON(vf)->tip_window), x + 16, y + 16);
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
493
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
494 if (id != VFICON(vf)->tip_id)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
495 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
496 GtkWidget *label;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
497
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
498 VFICON(vf)->tip_id = id;
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
499
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
500 if (!VFICON(vf)->tip_id)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
501 {
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
502 tip_hide(vf);
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
503 tip_schedule(vf);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
504 return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
505 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
506
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
507 label = g_object_get_data(G_OBJECT(VFICON(vf)->tip_window), "tip_label");
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
508 gtk_label_set_text(GTK_LABEL(label), VFICON(vf)->tip_id->fd->name);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
509 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
510 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
511 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
512 {
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
513 tip_schedule(vf);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
514 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
515 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
516
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
517 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
518 *-------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
519 * dnd
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
520 *-------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
521 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
522
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
523 static void vficon_dnd_get(GtkWidget *widget, GdkDragContext *context,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
524 GtkSelectionData *selection_data, guint info,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
525 guint time, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
526 {
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
527 ViewFile *vf = data;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
528 GList *list = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
529 gchar *uri_text = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
530 gint total;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
531
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
532 if (!VFICON(vf)->click_id) return;
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
533
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
534 if (VFICON(vf)->click_id->selected & SELECTION_SELECTED)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
535 {
633
fe700864cb5a Use vf_* functions where possible.
zas_
parents: 632
diff changeset
536 list = vf_selection_get_list(vf);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
537 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
538 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
539 {
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
540 list = g_list_append(NULL, file_data_ref(VFICON(vf)->click_id->fd));
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
541 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
542
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
543 if (!list) return;
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
544 uri_text = uri_text_from_filelist(list, &total, (info == TARGET_TEXT_PLAIN));
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
545 filelist_free(list);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
546
1164
3692efcbd325 Fix compilation warnings.
zas_
parents: 1055
diff changeset
547 DEBUG_1("%s", uri_text);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
548
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
549 gtk_selection_data_set(selection_data, selection_data->target,
64
04ff0df3ad2f Mon Aug 15 17:13:57 2005 John Ellis <johne@verizon.net>
gqview
parents: 9
diff changeset
550 8, (guchar *)uri_text, total);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
551 g_free(uri_text);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
552 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
553
1202
8bf3fff49ddd Allow to drag keywords on files in list or icon view. Dragged text is appended to keywords list of the destination file.
zas_
parents: 1164
diff changeset
554 static void vficon_drag_data_received(GtkWidget *entry_widget, GdkDragContext *context,
8bf3fff49ddd Allow to drag keywords on files in list or icon view. Dragged text is appended to keywords list of the destination file.
zas_
parents: 1164
diff changeset
555 int x, int y, GtkSelectionData *selection,
8bf3fff49ddd Allow to drag keywords on files in list or icon view. Dragged text is appended to keywords list of the destination file.
zas_
parents: 1164
diff changeset
556 guint info, guint time, gpointer data)
8bf3fff49ddd Allow to drag keywords on files in list or icon view. Dragged text is appended to keywords list of the destination file.
zas_
parents: 1164
diff changeset
557 {
8bf3fff49ddd Allow to drag keywords on files in list or icon view. Dragged text is appended to keywords list of the destination file.
zas_
parents: 1164
diff changeset
558 ViewFile *vf = data;
8bf3fff49ddd Allow to drag keywords on files in list or icon view. Dragged text is appended to keywords list of the destination file.
zas_
parents: 1164
diff changeset
559
8bf3fff49ddd Allow to drag keywords on files in list or icon view. Dragged text is appended to keywords list of the destination file.
zas_
parents: 1164
diff changeset
560 if (info == TARGET_TEXT_PLAIN) {
8bf3fff49ddd Allow to drag keywords on files in list or icon view. Dragged text is appended to keywords list of the destination file.
zas_
parents: 1164
diff changeset
561 IconData *id = vficon_find_data_by_coord(vf, x, y, NULL);
8bf3fff49ddd Allow to drag keywords on files in list or icon view. Dragged text is appended to keywords list of the destination file.
zas_
parents: 1164
diff changeset
562
8bf3fff49ddd Allow to drag keywords on files in list or icon view. Dragged text is appended to keywords list of the destination file.
zas_
parents: 1164
diff changeset
563 if (id && id->fd) {
8bf3fff49ddd Allow to drag keywords on files in list or icon view. Dragged text is appended to keywords list of the destination file.
zas_
parents: 1164
diff changeset
564 /* Add keywords to file */
8bf3fff49ddd Allow to drag keywords on files in list or icon view. Dragged text is appended to keywords list of the destination file.
zas_
parents: 1164
diff changeset
565 FileData *fd = id->fd;
1264
de24174d9e55 Silent two minor warnings: GtkSelectionData data field is guchar* while g_strndup() wants gchar * as first parameter.
zas_
parents: 1242
diff changeset
566 gchar *str = g_strndup((gchar *)selection->data, selection->length);
1202
8bf3fff49ddd Allow to drag keywords on files in list or icon view. Dragged text is appended to keywords list of the destination file.
zas_
parents: 1164
diff changeset
567 GList *kw_list = string_to_keywords_list(str);
8bf3fff49ddd Allow to drag keywords on files in list or icon view. Dragged text is appended to keywords list of the destination file.
zas_
parents: 1164
diff changeset
568
1238
947e603a52c6 simplified metadata interface, dropped metadata_read,
nadvornik
parents: 1233
diff changeset
569 metadata_append_list(fd, KEYWORD_KEY, kw_list);
1202
8bf3fff49ddd Allow to drag keywords on files in list or icon view. Dragged text is appended to keywords list of the destination file.
zas_
parents: 1164
diff changeset
570 string_list_free(kw_list);
8bf3fff49ddd Allow to drag keywords on files in list or icon view. Dragged text is appended to keywords list of the destination file.
zas_
parents: 1164
diff changeset
571 g_free(str);
1291
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents: 1284
diff changeset
572 /*
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents: 1284
diff changeset
573 file notification should handle this automatically
1202
8bf3fff49ddd Allow to drag keywords on files in list or icon view. Dragged text is appended to keywords list of the destination file.
zas_
parents: 1164
diff changeset
574 if (vf->layout && vf->layout->bar_info) {
1291
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents: 1284
diff changeset
575 bar_set_fd(vf->layout->bar_info, id->fd);
1202
8bf3fff49ddd Allow to drag keywords on files in list or icon view. Dragged text is appended to keywords list of the destination file.
zas_
parents: 1164
diff changeset
576 }
1291
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents: 1284
diff changeset
577 */
1202
8bf3fff49ddd Allow to drag keywords on files in list or icon view. Dragged text is appended to keywords list of the destination file.
zas_
parents: 1164
diff changeset
578 }
8bf3fff49ddd Allow to drag keywords on files in list or icon view. Dragged text is appended to keywords list of the destination file.
zas_
parents: 1164
diff changeset
579 }
8bf3fff49ddd Allow to drag keywords on files in list or icon view. Dragged text is appended to keywords list of the destination file.
zas_
parents: 1164
diff changeset
580 }
8bf3fff49ddd Allow to drag keywords on files in list or icon view. Dragged text is appended to keywords list of the destination file.
zas_
parents: 1164
diff changeset
581
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
582 static void vficon_dnd_begin(GtkWidget *widget, GdkDragContext *context, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
583 {
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
584 ViewFile *vf = data;
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
585
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
586 tip_unschedule(vf);
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
587
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
588 if (VFICON(vf)->click_id && VFICON(vf)->click_id->fd->thumb_pixbuf)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
589 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
590 gint items;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
591
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
592 if (VFICON(vf)->click_id->selected & SELECTION_SELECTED)
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
593 items = g_list_length(VFICON(vf)->selection);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
594 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
595 items = 1;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
596
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
597 dnd_set_drag_icon(widget, context, VFICON(vf)->click_id->fd->thumb_pixbuf, items);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
598 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
599 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
600
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
601 static void vficon_dnd_end(GtkWidget *widget, GdkDragContext *context, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
602 {
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
603 ViewFile *vf = data;
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
604
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
605 vficon_selection_remove(vf, VFICON(vf)->click_id, SELECTION_PRELIGHT, NULL);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
606
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
607 if (context->action == GDK_ACTION_MOVE)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
608 {
633
fe700864cb5a Use vf_* functions where possible.
zas_
parents: 632
diff changeset
609 vf_refresh(vf);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
610 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
611
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
612 tip_unschedule(vf);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
613 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
614
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
615 void vficon_dnd_init(ViewFile *vf)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
616 {
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
617 gtk_drag_source_set(vf->listview, GDK_BUTTON1_MASK | GDK_BUTTON2_MASK,
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
618 dnd_file_drag_types, dnd_file_drag_types_count,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
619 GDK_ACTION_COPY | GDK_ACTION_MOVE | GDK_ACTION_LINK);
1202
8bf3fff49ddd Allow to drag keywords on files in list or icon view. Dragged text is appended to keywords list of the destination file.
zas_
parents: 1164
diff changeset
620 gtk_drag_dest_set(vf->listview, GTK_DEST_DEFAULT_ALL,
8bf3fff49ddd Allow to drag keywords on files in list or icon view. Dragged text is appended to keywords list of the destination file.
zas_
parents: 1164
diff changeset
621 dnd_file_drag_types, dnd_file_drag_types_count,
8bf3fff49ddd Allow to drag keywords on files in list or icon view. Dragged text is appended to keywords list of the destination file.
zas_
parents: 1164
diff changeset
622 GDK_ACTION_COPY | GDK_ACTION_MOVE | GDK_ACTION_LINK);
8bf3fff49ddd Allow to drag keywords on files in list or icon view. Dragged text is appended to keywords list of the destination file.
zas_
parents: 1164
diff changeset
623
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
624 g_signal_connect(G_OBJECT(vf->listview), "drag_data_get",
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
625 G_CALLBACK(vficon_dnd_get), vf);
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
626 g_signal_connect(G_OBJECT(vf->listview), "drag_begin",
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
627 G_CALLBACK(vficon_dnd_begin), vf);
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
628 g_signal_connect(G_OBJECT(vf->listview), "drag_end",
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
629 G_CALLBACK(vficon_dnd_end), vf);
1202
8bf3fff49ddd Allow to drag keywords on files in list or icon view. Dragged text is appended to keywords list of the destination file.
zas_
parents: 1164
diff changeset
630 g_signal_connect(G_OBJECT(vf->listview), "drag_data_received",
8bf3fff49ddd Allow to drag keywords on files in list or icon view. Dragged text is appended to keywords list of the destination file.
zas_
parents: 1164
diff changeset
631 G_CALLBACK(vficon_drag_data_received), vf);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
632 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
633
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
634 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
635 *-------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
636 * cell updates
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
637 *-------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
638 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
639
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
640 static void vficon_selection_set(ViewFile *vf, IconData *id, SelectionType value, GtkTreeIter *iter)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
641 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
642 GtkTreeModel *store;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
643 GList *list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
644
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
645 if (!id) return;
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
646
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
647
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
648 if (id->selected == value) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
649 id->selected = value;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
650
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
651 store = gtk_tree_view_get_model(GTK_TREE_VIEW(vf->listview));
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
652 if (iter)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
653 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
654 gtk_tree_model_get(store, iter, FILE_COLUMN_POINTER, &list, -1);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
655 if (list) gtk_list_store_set(GTK_LIST_STORE(store), iter, FILE_COLUMN_POINTER, list, -1);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
656 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
657 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
658 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
659 GtkTreeIter row;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
660
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
661 if (vficon_find_iter(vf, id, &row, NULL))
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
662 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
663 gtk_tree_model_get(store, &row, FILE_COLUMN_POINTER, &list, -1);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
664 if (list) gtk_list_store_set(GTK_LIST_STORE(store), &row, FILE_COLUMN_POINTER, list, -1);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
665 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
666 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
667 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
668
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
669 static void vficon_selection_add(ViewFile *vf, IconData *id, SelectionType mask, GtkTreeIter *iter)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
670 {
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
671 if (!id) return;
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
672
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
673 vficon_selection_set(vf, id, id->selected | mask, iter);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
674 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
675
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
676 static void vficon_selection_remove(ViewFile *vf, IconData *id, SelectionType mask, GtkTreeIter *iter)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
677 {
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
678 if (!id) return;
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
679
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
680 vficon_selection_set(vf, id, id->selected & ~mask, iter);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
681 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
682
852
8308d3606991 show marks in iconview
nadvornik
parents: 851
diff changeset
683 void vficon_marks_set(ViewFile *vf, gint enable)
8308d3606991 show marks in iconview
nadvornik
parents: 851
diff changeset
684 {
8308d3606991 show marks in iconview
nadvornik
parents: 851
diff changeset
685 vficon_populate_at_new_size(vf, vf->listview->allocation.width, vf->listview->allocation.height, TRUE);
8308d3606991 show marks in iconview
nadvornik
parents: 851
diff changeset
686 }
8308d3606991 show marks in iconview
nadvornik
parents: 851
diff changeset
687
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
688 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
689 *-------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
690 * selections
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
691 *-------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
692 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
693
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
694 static void vficon_verify_selections(ViewFile *vf)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
695 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
696 GList *work;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
697
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
698 work = VFICON(vf)->selection;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
699 while (work)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
700 {
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
701 IconData *id = work->data;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
702 work = work->next;
577
5ded871a0968 Minor cleanup.
zas_
parents: 575
diff changeset
703
5ded871a0968 Minor cleanup.
zas_
parents: 575
diff changeset
704 if (vficon_index_by_id(vf, id) >= 0) continue;
5ded871a0968 Minor cleanup.
zas_
parents: 575
diff changeset
705
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
706 VFICON(vf)->selection = g_list_remove(VFICON(vf)->selection, id);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
707 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
708 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
709
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
710 void vficon_select_all(ViewFile *vf)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
711 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
712 GList *work;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
713
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
714 g_list_free(VFICON(vf)->selection);
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
715 VFICON(vf)->selection = NULL;
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
716
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
717 work = vf->list;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
718 while (work)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
719 {
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
720 IconData *id = work->data;
577
5ded871a0968 Minor cleanup.
zas_
parents: 575
diff changeset
721 work = work->next;
5ded871a0968 Minor cleanup.
zas_
parents: 575
diff changeset
722
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
723 VFICON(vf)->selection = g_list_append(VFICON(vf)->selection, id);
577
5ded871a0968 Minor cleanup.
zas_
parents: 575
diff changeset
724 vficon_selection_add(vf, id, SELECTION_SELECTED, NULL);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
725 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
726
633
fe700864cb5a Use vf_* functions where possible.
zas_
parents: 632
diff changeset
727 vf_send_update(vf);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
728 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
729
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
730 void vficon_select_none(ViewFile *vf)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
731 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
732 GList *work;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
733
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
734 work = VFICON(vf)->selection;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
735 while (work)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
736 {
577
5ded871a0968 Minor cleanup.
zas_
parents: 575
diff changeset
737 IconData *id = work->data;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
738 work = work->next;
577
5ded871a0968 Minor cleanup.
zas_
parents: 575
diff changeset
739
5ded871a0968 Minor cleanup.
zas_
parents: 575
diff changeset
740 vficon_selection_remove(vf, id, SELECTION_SELECTED, NULL);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
741 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
742
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
743 g_list_free(VFICON(vf)->selection);
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
744 VFICON(vf)->selection = NULL;
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
745
633
fe700864cb5a Use vf_* functions where possible.
zas_
parents: 632
diff changeset
746 vf_send_update(vf);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
747 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
748
601
93c6dc4c537b Add a way to invert the current selection.
zas_
parents: 586
diff changeset
749 void vficon_select_invert(ViewFile *vf)
93c6dc4c537b Add a way to invert the current selection.
zas_
parents: 586
diff changeset
750 {
93c6dc4c537b Add a way to invert the current selection.
zas_
parents: 586
diff changeset
751 GList *work;
93c6dc4c537b Add a way to invert the current selection.
zas_
parents: 586
diff changeset
752
93c6dc4c537b Add a way to invert the current selection.
zas_
parents: 586
diff changeset
753 work = vf->list;
93c6dc4c537b Add a way to invert the current selection.
zas_
parents: 586
diff changeset
754 while (work)
93c6dc4c537b Add a way to invert the current selection.
zas_
parents: 586
diff changeset
755 {
93c6dc4c537b Add a way to invert the current selection.
zas_
parents: 586
diff changeset
756 IconData *id = work->data;
93c6dc4c537b Add a way to invert the current selection.
zas_
parents: 586
diff changeset
757 work = work->next;
93c6dc4c537b Add a way to invert the current selection.
zas_
parents: 586
diff changeset
758
93c6dc4c537b Add a way to invert the current selection.
zas_
parents: 586
diff changeset
759 if (id->selected & SELECTION_SELECTED)
93c6dc4c537b Add a way to invert the current selection.
zas_
parents: 586
diff changeset
760 {
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
761 VFICON(vf)->selection = g_list_remove(VFICON(vf)->selection, id);
601
93c6dc4c537b Add a way to invert the current selection.
zas_
parents: 586
diff changeset
762 vficon_selection_remove(vf, id, SELECTION_SELECTED, NULL);
93c6dc4c537b Add a way to invert the current selection.
zas_
parents: 586
diff changeset
763 }
93c6dc4c537b Add a way to invert the current selection.
zas_
parents: 586
diff changeset
764 else
93c6dc4c537b Add a way to invert the current selection.
zas_
parents: 586
diff changeset
765 {
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
766 VFICON(vf)->selection = g_list_append(VFICON(vf)->selection, id);
601
93c6dc4c537b Add a way to invert the current selection.
zas_
parents: 586
diff changeset
767 vficon_selection_add(vf, id, SELECTION_SELECTED, NULL);
93c6dc4c537b Add a way to invert the current selection.
zas_
parents: 586
diff changeset
768 }
93c6dc4c537b Add a way to invert the current selection.
zas_
parents: 586
diff changeset
769 }
93c6dc4c537b Add a way to invert the current selection.
zas_
parents: 586
diff changeset
770
633
fe700864cb5a Use vf_* functions where possible.
zas_
parents: 632
diff changeset
771 vf_send_update(vf);
601
93c6dc4c537b Add a way to invert the current selection.
zas_
parents: 586
diff changeset
772 }
93c6dc4c537b Add a way to invert the current selection.
zas_
parents: 586
diff changeset
773
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
774 static void vficon_select(ViewFile *vf, IconData *id)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
775 {
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
776 VFICON(vf)->prev_selection = id;
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
777
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
778 if (!id || id->selected & SELECTION_SELECTED) return;
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
779
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
780 VFICON(vf)->selection = g_list_append(VFICON(vf)->selection, id);
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
781 vficon_selection_add(vf, id, SELECTION_SELECTED, NULL);
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
782
633
fe700864cb5a Use vf_* functions where possible.
zas_
parents: 632
diff changeset
783 vf_send_update(vf);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
784 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
785
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
786 static void vficon_unselect(ViewFile *vf, IconData *id)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
787 {
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
788 VFICON(vf)->prev_selection = id;
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
789
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
790 if (!id || !(id->selected & SELECTION_SELECTED) ) return;
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
791
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
792 VFICON(vf)->selection = g_list_remove(VFICON(vf)->selection, id);
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
793 vficon_selection_remove(vf, id, SELECTION_SELECTED, NULL);
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
794
633
fe700864cb5a Use vf_* functions where possible.
zas_
parents: 632
diff changeset
795 vf_send_update(vf);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
796 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
797
1453
bc3f5c0432f6 gint -> gboolean where applicable. The end (ouf!).
zas_
parents: 1437
diff changeset
798 static void vficon_select_util(ViewFile *vf, IconData *id, gboolean select)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
799 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
800 if (select)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
801 {
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
802 vficon_select(vf, id);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
803 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
804 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
805 {
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
806 vficon_unselect(vf, id);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
807 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
808 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
809
1453
bc3f5c0432f6 gint -> gboolean where applicable. The end (ouf!).
zas_
parents: 1437
diff changeset
810 static void vficon_select_region_util(ViewFile *vf, IconData *start, IconData *end, gboolean select)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
811 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
812 gint row1, col1;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
813 gint row2, col2;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
814 gint t;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
815 gint i, j;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
816
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
817 if (!vficon_find_position(vf, start, &row1, &col1) ||
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
818 !vficon_find_position(vf, end, &row2, &col2) ) return;
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
819
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
820 VFICON(vf)->prev_selection = end;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
821
330
57a4ced53618 Rename collection options.
zas_
parents: 320
diff changeset
822 if (!options->collections.rectangular_selection)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
823 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
824 GList *work;
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
825 IconData *id;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
826
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
827 if (g_list_index(vf->list, start) > g_list_index(vf->list, end))
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
828 {
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
829 id = start;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
830 start = end;
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
831 end = id;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
832 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
833
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
834 work = g_list_find(vf->list, start);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
835 while (work)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
836 {
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
837 id = work->data;
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
838 vficon_select_util(vf, id, select);
442
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 380
diff changeset
839
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
840 if (work->data != end)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
841 work = work->next;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
842 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
843 work = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
844 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
845 return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
846 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
847
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
848 if (row2 < row1)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
849 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
850 t = row1;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
851 row1 = row2;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
852 row2 = t;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
853 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
854 if (col2 < col1)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
855 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
856 t = col1;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
857 col1 = col2;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
858 col2 = t;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
859 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
860
506
fc9c8a3e1a8b Handle the newline in DEBUG_N() macro instead of adding one
zas_
parents: 499
diff changeset
861 DEBUG_1("table: %d x %d to %d x %d", row1, col1, row2, col2);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
862
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
863 for (i = row1; i <= row2; i++)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
864 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
865 for (j = col1; j <= col2; j++)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
866 {
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
867 IconData *id = vficon_find_data(vf, i, j, NULL);
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
868 if (id) vficon_select_util(vf, id, select);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
869 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
870 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
871 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
872
1453
bc3f5c0432f6 gint -> gboolean where applicable. The end (ouf!).
zas_
parents: 1437
diff changeset
873 gboolean vficon_index_is_selected(ViewFile *vf, gint row)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
874 {
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
875 IconData *id = g_list_nth_data(vf->list, row);
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
876
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
877 if (!id) return FALSE;
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
878
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
879 return (id->selected & SELECTION_SELECTED);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
880 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
881
736
a7289f9e8d29 Fix signed vs unsigned warnings.
zas_
parents: 671
diff changeset
882 guint vficon_selection_count(ViewFile *vf, gint64 *bytes)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
883 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
884 if (bytes)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
885 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
886 gint64 b = 0;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
887 GList *work;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
888
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
889 work = VFICON(vf)->selection;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
890 while (work)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
891 {
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
892 IconData *id = work->data;
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
893 FileData *fd = id->fd;
442
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 380
diff changeset
894 g_assert(fd->magick == 0x12345678);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
895 b += fd->size;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
896
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
897 work = work->next;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
898 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
899
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
900 *bytes = b;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
901 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
902
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
903 return g_list_length(VFICON(vf)->selection);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
904 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
905
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
906 GList *vficon_selection_get_list(ViewFile *vf)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
907 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
908 GList *list = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
909 GList *work;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
910
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
911 work = VFICON(vf)->selection;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
912 while (work)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
913 {
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
914 IconData *id = work->data;
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
915 FileData *fd = id->fd;
442
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 380
diff changeset
916 g_assert(fd->magick == 0x12345678);
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
917
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
918 list = g_list_prepend(list, file_data_ref(fd));
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
919
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
920 work = work->next;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
921 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
922
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
923 list = g_list_reverse(list);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
924
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
925 return list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
926 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
927
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
928 GList *vficon_selection_get_list_by_index(ViewFile *vf)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
929 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
930 GList *list = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
931 GList *work;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
932
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
933 work = VFICON(vf)->selection;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
934 while (work)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
935 {
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
936 list = g_list_prepend(list, GINT_TO_POINTER(g_list_index(vf->list, work->data)));
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
937 work = work->next;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
938 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
939
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
940 return g_list_reverse(list);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
941 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
942
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
943 static void vficon_select_by_id(ViewFile *vf, IconData *id)
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
944 {
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
945 if (!id) return;
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
946
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
947 if (!(id->selected & SELECTION_SELECTED))
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
948 {
633
fe700864cb5a Use vf_* functions where possible.
zas_
parents: 632
diff changeset
949 vf_select_none(vf);
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
950 vficon_select(vf, id);
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
951 }
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
952
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
953 vficon_set_focus(vf, id);
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
954 }
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
955
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
956 void vficon_select_by_fd(ViewFile *vf, FileData *fd)
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
957 {
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
958 IconData *id = NULL;
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
959 GList *work;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
960
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
961 if (!fd) return;
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
962 work = vf->list;
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
963 while (work && !id)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
964 {
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
965 IconData *chk = work->data;
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
966 work = work->next;
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
967 if (chk->fd == fd) id = chk;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
968 }
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
969 vficon_select_by_id(vf, id);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
970 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
971
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
972 void vficon_mark_to_selection(ViewFile *vf, gint mark, MarkToSelectionMode mode)
165
d7067ec71042 basic support for marks in view_file_icon.c
nadvornik
parents: 144
diff changeset
973 {
d7067ec71042 basic support for marks in view_file_icon.c
nadvornik
parents: 144
diff changeset
974 GList *work;
654
6dcfac4b356f Get rid of vflist_pop_menu() col_idx parameter, use new Viewfile field
zas_
parents: 637
diff changeset
975 gint n = mark - 1;
6dcfac4b356f Get rid of vflist_pop_menu() col_idx parameter, use new Viewfile field
zas_
parents: 637
diff changeset
976
6dcfac4b356f Get rid of vflist_pop_menu() col_idx parameter, use new Viewfile field
zas_
parents: 637
diff changeset
977 g_assert(mark >= 1 && mark <= FILEDATA_MARKS_SIZE);
165
d7067ec71042 basic support for marks in view_file_icon.c
nadvornik
parents: 144
diff changeset
978
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
979 work = vf->list;
165
d7067ec71042 basic support for marks in view_file_icon.c
nadvornik
parents: 144
diff changeset
980 while (work)
d7067ec71042 basic support for marks in view_file_icon.c
nadvornik
parents: 144
diff changeset
981 {
d7067ec71042 basic support for marks in view_file_icon.c
nadvornik
parents: 144
diff changeset
982 IconData *id = work->data;
d7067ec71042 basic support for marks in view_file_icon.c
nadvornik
parents: 144
diff changeset
983 FileData *fd = id->fd;
d7067ec71042 basic support for marks in view_file_icon.c
nadvornik
parents: 144
diff changeset
984 gboolean mark_val, selected;
d7067ec71042 basic support for marks in view_file_icon.c
nadvornik
parents: 144
diff changeset
985
442
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 380
diff changeset
986 g_assert(fd->magick == 0x12345678);
165
d7067ec71042 basic support for marks in view_file_icon.c
nadvornik
parents: 144
diff changeset
987
800
a25b228978a0 various notification improvements
nadvornik
parents: 792
diff changeset
988 mark_val = file_data_get_mark(fd, n);
165
d7067ec71042 basic support for marks in view_file_icon.c
nadvornik
parents: 144
diff changeset
989 selected = (id->selected & SELECTION_SELECTED);
442
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 380
diff changeset
990
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 380
diff changeset
991 switch (mode)
165
d7067ec71042 basic support for marks in view_file_icon.c
nadvornik
parents: 144
diff changeset
992 {
d7067ec71042 basic support for marks in view_file_icon.c
nadvornik
parents: 144
diff changeset
993 case MTS_MODE_SET: selected = mark_val;
d7067ec71042 basic support for marks in view_file_icon.c
nadvornik
parents: 144
diff changeset
994 break;
d7067ec71042 basic support for marks in view_file_icon.c
nadvornik
parents: 144
diff changeset
995 case MTS_MODE_OR: selected = mark_val | selected;
d7067ec71042 basic support for marks in view_file_icon.c
nadvornik
parents: 144
diff changeset
996 break;
d7067ec71042 basic support for marks in view_file_icon.c
nadvornik
parents: 144
diff changeset
997 case MTS_MODE_AND: selected = mark_val & selected;
d7067ec71042 basic support for marks in view_file_icon.c
nadvornik
parents: 144
diff changeset
998 break;
d7067ec71042 basic support for marks in view_file_icon.c
nadvornik
parents: 144
diff changeset
999 case MTS_MODE_MINUS: selected = !mark_val & selected;
d7067ec71042 basic support for marks in view_file_icon.c
nadvornik
parents: 144
diff changeset
1000 break;
d7067ec71042 basic support for marks in view_file_icon.c
nadvornik
parents: 144
diff changeset
1001 }
442
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 380
diff changeset
1002
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1003 vficon_select_util(vf, id, selected);
165
d7067ec71042 basic support for marks in view_file_icon.c
nadvornik
parents: 144
diff changeset
1004
d7067ec71042 basic support for marks in view_file_icon.c
nadvornik
parents: 144
diff changeset
1005 work = work->next;
d7067ec71042 basic support for marks in view_file_icon.c
nadvornik
parents: 144
diff changeset
1006 }
d7067ec71042 basic support for marks in view_file_icon.c
nadvornik
parents: 144
diff changeset
1007 }
d7067ec71042 basic support for marks in view_file_icon.c
nadvornik
parents: 144
diff changeset
1008
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1009 void vficon_selection_to_mark(ViewFile *vf, gint mark, SelectionToMarkMode mode)
165
d7067ec71042 basic support for marks in view_file_icon.c
nadvornik
parents: 144
diff changeset
1010 {
d7067ec71042 basic support for marks in view_file_icon.c
nadvornik
parents: 144
diff changeset
1011 GList *slist;
d7067ec71042 basic support for marks in view_file_icon.c
nadvornik
parents: 144
diff changeset
1012 GList *work;
654
6dcfac4b356f Get rid of vflist_pop_menu() col_idx parameter, use new Viewfile field
zas_
parents: 637
diff changeset
1013 gint n = mark -1;
6dcfac4b356f Get rid of vflist_pop_menu() col_idx parameter, use new Viewfile field
zas_
parents: 637
diff changeset
1014
6dcfac4b356f Get rid of vflist_pop_menu() col_idx parameter, use new Viewfile field
zas_
parents: 637
diff changeset
1015 g_assert(mark >= 1 && mark <= FILEDATA_MARKS_SIZE);
165
d7067ec71042 basic support for marks in view_file_icon.c
nadvornik
parents: 144
diff changeset
1016
633
fe700864cb5a Use vf_* functions where possible.
zas_
parents: 632
diff changeset
1017 slist = vf_selection_get_list(vf);
165
d7067ec71042 basic support for marks in view_file_icon.c
nadvornik
parents: 144
diff changeset
1018 work = slist;
d7067ec71042 basic support for marks in view_file_icon.c
nadvornik
parents: 144
diff changeset
1019 while (work)
d7067ec71042 basic support for marks in view_file_icon.c
nadvornik
parents: 144
diff changeset
1020 {
d7067ec71042 basic support for marks in view_file_icon.c
nadvornik
parents: 144
diff changeset
1021 FileData *fd = work->data;
442
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 380
diff changeset
1022
165
d7067ec71042 basic support for marks in view_file_icon.c
nadvornik
parents: 144
diff changeset
1023 switch (mode)
d7067ec71042 basic support for marks in view_file_icon.c
nadvornik
parents: 144
diff changeset
1024 {
800
a25b228978a0 various notification improvements
nadvornik
parents: 792
diff changeset
1025 case STM_MODE_SET: file_data_set_mark(fd, n, 1);
165
d7067ec71042 basic support for marks in view_file_icon.c
nadvornik
parents: 144
diff changeset
1026 break;
800
a25b228978a0 various notification improvements
nadvornik
parents: 792
diff changeset
1027 case STM_MODE_RESET: file_data_set_mark(fd, n, 0);
165
d7067ec71042 basic support for marks in view_file_icon.c
nadvornik
parents: 144
diff changeset
1028 break;
800
a25b228978a0 various notification improvements
nadvornik
parents: 792
diff changeset
1029 case STM_MODE_TOGGLE: file_data_set_mark(fd, n, !file_data_get_mark(fd, n));
165
d7067ec71042 basic support for marks in view_file_icon.c
nadvornik
parents: 144
diff changeset
1030 break;
d7067ec71042 basic support for marks in view_file_icon.c
nadvornik
parents: 144
diff changeset
1031 }
d7067ec71042 basic support for marks in view_file_icon.c
nadvornik
parents: 144
diff changeset
1032 work = work->next;
d7067ec71042 basic support for marks in view_file_icon.c
nadvornik
parents: 144
diff changeset
1033 }
d7067ec71042 basic support for marks in view_file_icon.c
nadvornik
parents: 144
diff changeset
1034 filelist_free(slist);
d7067ec71042 basic support for marks in view_file_icon.c
nadvornik
parents: 144
diff changeset
1035 }
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
1036
811
f1ce59985518 handle deletion of selected files
nadvornik
parents: 810
diff changeset
1037 static void vficon_select_closest(ViewFile *vf, FileData *sel_fd)
f1ce59985518 handle deletion of selected files
nadvornik
parents: 810
diff changeset
1038 {
f1ce59985518 handle deletion of selected files
nadvornik
parents: 810
diff changeset
1039 GList *work;
1233
b51874ca8642 fixed updating of selection after deleting the last image from the list
nadvornik
parents: 1206
diff changeset
1040 IconData *id = NULL;
811
f1ce59985518 handle deletion of selected files
nadvornik
parents: 810
diff changeset
1041
f1ce59985518 handle deletion of selected files
nadvornik
parents: 810
diff changeset
1042 if (sel_fd->parent) sel_fd = sel_fd->parent;
f1ce59985518 handle deletion of selected files
nadvornik
parents: 810
diff changeset
1043 work = vf->list;
f1ce59985518 handle deletion of selected files
nadvornik
parents: 810
diff changeset
1044
f1ce59985518 handle deletion of selected files
nadvornik
parents: 810
diff changeset
1045 while (work)
f1ce59985518 handle deletion of selected files
nadvornik
parents: 810
diff changeset
1046 {
f1ce59985518 handle deletion of selected files
nadvornik
parents: 810
diff changeset
1047 gint match;
1233
b51874ca8642 fixed updating of selection after deleting the last image from the list
nadvornik
parents: 1206
diff changeset
1048 FileData *fd;
b51874ca8642 fixed updating of selection after deleting the last image from the list
nadvornik
parents: 1206
diff changeset
1049
b51874ca8642 fixed updating of selection after deleting the last image from the list
nadvornik
parents: 1206
diff changeset
1050 id = work->data;
b51874ca8642 fixed updating of selection after deleting the last image from the list
nadvornik
parents: 1206
diff changeset
1051 fd = id->fd;
811
f1ce59985518 handle deletion of selected files
nadvornik
parents: 810
diff changeset
1052 work = work->next;
f1ce59985518 handle deletion of selected files
nadvornik
parents: 810
diff changeset
1053
f1ce59985518 handle deletion of selected files
nadvornik
parents: 810
diff changeset
1054 match = filelist_sort_compare_filedata_full(fd, sel_fd, vf->sort_method, vf->sort_ascend);
f1ce59985518 handle deletion of selected files
nadvornik
parents: 810
diff changeset
1055
1233
b51874ca8642 fixed updating of selection after deleting the last image from the list
nadvornik
parents: 1206
diff changeset
1056 if (match >= 0) break;
811
f1ce59985518 handle deletion of selected files
nadvornik
parents: 810
diff changeset
1057 }
1233
b51874ca8642 fixed updating of selection after deleting the last image from the list
nadvornik
parents: 1206
diff changeset
1058
b51874ca8642 fixed updating of selection after deleting the last image from the list
nadvornik
parents: 1206
diff changeset
1059 if (id)
b51874ca8642 fixed updating of selection after deleting the last image from the list
nadvornik
parents: 1206
diff changeset
1060 {
b51874ca8642 fixed updating of selection after deleting the last image from the list
nadvornik
parents: 1206
diff changeset
1061 vficon_select(vf, id);
b51874ca8642 fixed updating of selection after deleting the last image from the list
nadvornik
parents: 1206
diff changeset
1062 vficon_send_layout_select(vf, id);
b51874ca8642 fixed updating of selection after deleting the last image from the list
nadvornik
parents: 1206
diff changeset
1063 }
811
f1ce59985518 handle deletion of selected files
nadvornik
parents: 810
diff changeset
1064 }
f1ce59985518 handle deletion of selected files
nadvornik
parents: 810
diff changeset
1065
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
1066
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1067 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1068 *-------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1069 * focus
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1070 *-------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1071 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1072
1453
bc3f5c0432f6 gint -> gboolean where applicable. The end (ouf!).
zas_
parents: 1437
diff changeset
1073 static void vficon_move_focus(ViewFile *vf, gint row, gint col, gboolean relative)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1074 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1075 gint new_row;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1076 gint new_col;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1077
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1078 if (relative)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1079 {
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1080 new_row = VFICON(vf)->focus_row;
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1081 new_col = VFICON(vf)->focus_column;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1082
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1083 new_row += row;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1084 if (new_row < 0) new_row = 0;
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1085 if (new_row >= VFICON(vf)->rows) new_row = VFICON(vf)->rows - 1;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1086
516
b7e99bfeadc9 Convert the minority of while() to while ().
zas_
parents: 507
diff changeset
1087 while (col != 0)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1088 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1089 if (col < 0)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1090 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1091 new_col--;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1092 col++;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1093 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1094 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1095 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1096 new_col++;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1097 col--;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1098 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1099
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1100 if (new_col < 0)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1101 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1102 if (new_row > 0)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1103 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1104 new_row--;
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1105 new_col = VFICON(vf)->columns - 1;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1106 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1107 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1108 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1109 new_col = 0;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1110 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1111 }
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1112 if (new_col >= VFICON(vf)->columns)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1113 {
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1114 if (new_row < VFICON(vf)->rows - 1)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1115 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1116 new_row++;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1117 new_col = 0;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1118 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1119 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1120 {
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1121 new_col = VFICON(vf)->columns - 1;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1122 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1123 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1124 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1125 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1126 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1127 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1128 new_row = row;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1129 new_col = col;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1130
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1131 if (new_row >= VFICON(vf)->rows)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1132 {
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1133 if (VFICON(vf)->rows > 0)
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1134 new_row = VFICON(vf)->rows - 1;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1135 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1136 new_row = 0;
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1137 new_col = VFICON(vf)->columns - 1;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1138 }
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1139 if (new_col >= VFICON(vf)->columns) new_col = VFICON(vf)->columns - 1;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1140 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1141
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1142 if (new_row == VFICON(vf)->rows - 1)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1143 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1144 gint l;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1145
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1146 /* if we moved beyond the last image, go to the last image */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1147
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1148 l = g_list_length(vf->list);
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1149 if (VFICON(vf)->rows > 1) l -= (VFICON(vf)->rows - 1) * VFICON(vf)->columns;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1150 if (new_col >= l) new_col = l - 1;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1151 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1152
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1153 vficon_set_focus(vf, vficon_find_data(vf, new_row, new_col, NULL));
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1154 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1155
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1156 static void vficon_set_focus(ViewFile *vf, IconData *id)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1157 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1158 GtkTreeIter iter;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1159 gint row, col;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1160
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1161 if (g_list_find(vf->list, VFICON(vf)->focus_id))
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1162 {
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1163 if (id == VFICON(vf)->focus_id)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1164 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1165 /* ensure focus row col are correct */
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1166 vficon_find_position(vf, VFICON(vf)->focus_id, &VFICON(vf)->focus_row, &VFICON(vf)->focus_column);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1167 return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1168 }
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1169 vficon_selection_remove(vf, VFICON(vf)->focus_id, SELECTION_FOCUS, NULL);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1170 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1171
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1172 if (!vficon_find_position(vf, id, &row, &col))
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1173 {
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1174 VFICON(vf)->focus_id = NULL;
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1175 VFICON(vf)->focus_row = -1;
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1176 VFICON(vf)->focus_column = -1;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1177 return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1178 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1179
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1180 VFICON(vf)->focus_id = id;
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1181 VFICON(vf)->focus_row = row;
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1182 VFICON(vf)->focus_column = col;
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1183 vficon_selection_add(vf, VFICON(vf)->focus_id, SELECTION_FOCUS, NULL);
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1184
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1185 if (vficon_find_iter(vf, VFICON(vf)->focus_id, &iter, NULL))
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1186 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1187 GtkTreePath *tpath;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1188 GtkTreeViewColumn *column;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1189 GtkTreeModel *store;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1190
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1191 tree_view_row_make_visible(GTK_TREE_VIEW(vf->listview), &iter, FALSE);
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1192
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1193 store = gtk_tree_view_get_model(GTK_TREE_VIEW(vf->listview));
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1194 tpath = gtk_tree_model_get_path(store, &iter);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1195 /* focus is set to an extra column with 0 width to hide focus, we draw it ourself */
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1196 column = gtk_tree_view_get_column(GTK_TREE_VIEW(vf->listview), VFICON_MAX_COLUMNS);
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1197 gtk_tree_view_set_cursor(GTK_TREE_VIEW(vf->listview), tpath, column, FALSE);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1198 gtk_tree_path_free(tpath);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1199 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1200 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1201
1005
ec2788ff6791 Comment out unused functions.
zas_
parents: 1002
diff changeset
1202 #if 0
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1203 static void vficon_update_focus(ViewFile *vf)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1204 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1205 gint new_row = 0;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1206 gint new_col = 0;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1207
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1208 if (VFICON(vf)->focus_id && vficon_find_position(vf, VFICON(vf)->focus_id, &new_row, &new_col))
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1209 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1210 /* first find the old focus, if it exists and is valid */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1211 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1212 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1213 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1214 /* (try to) stay where we were */
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1215 new_row = VFICON(vf)->focus_row;
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1216 new_col = VFICON(vf)->focus_column;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1217 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1218
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1219 vficon_move_focus(vf, new_row, new_col, FALSE);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1220 }
1005
ec2788ff6791 Comment out unused functions.
zas_
parents: 1002
diff changeset
1221 #endif
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1222
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1223 /* used to figure the page up/down distances */
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1224 static gint page_height(ViewFile *vf)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1225 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1226 GtkAdjustment *adj;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1227 gint page_size;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1228 gint row_height;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1229 gint ret;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1230
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1231 adj = gtk_tree_view_get_vadjustment(GTK_TREE_VIEW(vf->listview));
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1232 page_size = (gint)adj->page_increment;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1233
333
767b53cd9ab7 Rename thumbnails related options.
zas_
parents: 330
diff changeset
1234 row_height = options->thumbnails.max_height + THUMB_BORDER_PADDING * 2;
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1235 if (VFICON(vf)->show_text) row_height += options->thumbnails.max_height / 3;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1236
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1237 ret = page_size / row_height;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1238 if (ret < 1) ret = 1;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1239
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1240 return ret;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1241 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1242
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1243 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1244 *-------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1245 * keyboard
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1246 *-------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1247 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1248
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1249 static void vfi_menu_position_cb(GtkMenu *menu, gint *x, gint *y, gboolean *push_in, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1250 {
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1251 ViewFile *vf = data;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1252 GtkTreeModel *store;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1253 GtkTreeIter iter;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1254 gint column;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1255 GtkTreePath *tpath;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1256 gint cw, ch;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1257
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1258 if (!vficon_find_iter(vf, VFICON(vf)->click_id, &iter, &column)) return;
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1259 store = gtk_tree_view_get_model(GTK_TREE_VIEW(vf->listview));
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1260 tpath = gtk_tree_model_get_path(store, &iter);
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1261 tree_view_get_cell_clamped(GTK_TREE_VIEW(vf->listview), tpath, column, FALSE, x, y, &cw, &ch);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1262 gtk_tree_path_free(tpath);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1263 *y += ch;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1264 popup_menu_position_clamp(menu, x, y, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1265 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1266
1453
bc3f5c0432f6 gint -> gboolean where applicable. The end (ouf!).
zas_
parents: 1437
diff changeset
1267 gboolean vficon_press_key_cb(GtkWidget *widget, GdkEventKey *event, gpointer data)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1268 {
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1269 ViewFile *vf = data;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1270 gint focus_row = 0;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1271 gint focus_col = 0;
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
1272 IconData *id;
1453
bc3f5c0432f6 gint -> gboolean where applicable. The end (ouf!).
zas_
parents: 1437
diff changeset
1273 gboolean stop_signal;
85
9d5c75b5ec28 Fri Oct 20 09:20:10 2006 John Ellis <johne@verizon.net>
gqview
parents: 64
diff changeset
1274
9d5c75b5ec28 Fri Oct 20 09:20:10 2006 John Ellis <johne@verizon.net>
gqview
parents: 64
diff changeset
1275 stop_signal = TRUE;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1276 switch (event->keyval)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1277 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1278 case GDK_Left: case GDK_KP_Left:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1279 focus_col = -1;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1280 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1281 case GDK_Right: case GDK_KP_Right:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1282 focus_col = 1;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1283 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1284 case GDK_Up: case GDK_KP_Up:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1285 focus_row = -1;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1286 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1287 case GDK_Down: case GDK_KP_Down:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1288 focus_row = 1;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1289 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1290 case GDK_Page_Up: case GDK_KP_Page_Up:
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1291 focus_row = -page_height(vf);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1292 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1293 case GDK_Page_Down: case GDK_KP_Page_Down:
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1294 focus_row = page_height(vf);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1295 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1296 case GDK_Home: case GDK_KP_Home:
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1297 focus_row = -VFICON(vf)->focus_row;
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1298 focus_col = -VFICON(vf)->focus_column;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1299 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1300 case GDK_End: case GDK_KP_End:
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1301 focus_row = VFICON(vf)->rows - 1 - VFICON(vf)->focus_row;
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1302 focus_col = VFICON(vf)->columns - 1 - VFICON(vf)->focus_column;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1303 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1304 case GDK_space:
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1305 id = vficon_find_data(vf, VFICON(vf)->focus_row, VFICON(vf)->focus_column, NULL);
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
1306 if (id)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1307 {
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1308 VFICON(vf)->click_id = id;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1309 if (event->state & GDK_CONTROL_MASK)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1310 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1311 gint selected;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1312
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
1313 selected = id->selected & SELECTION_SELECTED;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1314 if (selected)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1315 {
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1316 vficon_unselect(vf, id);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1317 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1318 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1319 {
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1320 vficon_select(vf, id);
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1321 vficon_send_layout_select(vf, id);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1322 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1323 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1324 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1325 {
633
fe700864cb5a Use vf_* functions where possible.
zas_
parents: 632
diff changeset
1326 vf_select_none(vf);
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1327 vficon_select(vf, id);
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1328 vficon_send_layout_select(vf, id);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1329 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1330 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1331 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1332 case GDK_Menu:
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1333 id = vficon_find_data(vf, VFICON(vf)->focus_row, VFICON(vf)->focus_column, NULL);
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1334 VFICON(vf)->click_id = id;
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1335
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1336 vficon_selection_add(vf, VFICON(vf)->click_id, SELECTION_PRELIGHT, NULL);
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1337 tip_unschedule(vf);
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1338
659
542bb47fef04 Merge vflist_pop_menu() and vficon_pop_menu() into vf_pop_menu().
zas_
parents: 658
diff changeset
1339 vf->popup = vf_pop_menu(vf);
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1340 gtk_menu_popup(GTK_MENU(vf->popup), NULL, NULL, vfi_menu_position_cb, vf, 0, GDK_CURRENT_TIME);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1341 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1342 default:
85
9d5c75b5ec28 Fri Oct 20 09:20:10 2006 John Ellis <johne@verizon.net>
gqview
parents: 64
diff changeset
1343 stop_signal = FALSE;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1344 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1345 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1346
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1347 if (focus_row != 0 || focus_col != 0)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1348 {
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
1349 IconData *new_id;
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
1350 IconData *old_id;
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
1351
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1352 old_id = vficon_find_data(vf, VFICON(vf)->focus_row, VFICON(vf)->focus_column, NULL);
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1353 vficon_move_focus(vf, focus_row, focus_col, TRUE);
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1354 new_id = vficon_find_data(vf, VFICON(vf)->focus_row, VFICON(vf)->focus_column, NULL);
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
1355
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
1356 if (new_id != old_id)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1357 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1358 if (event->state & GDK_SHIFT_MASK)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1359 {
330
57a4ced53618 Rename collection options.
zas_
parents: 320
diff changeset
1360 if (!options->collections.rectangular_selection)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1361 {
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1362 vficon_select_region_util(vf, old_id, new_id, FALSE);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1363 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1364 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1365 {
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1366 vficon_select_region_util(vf, VFICON(vf)->click_id, old_id, FALSE);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1367 }
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1368 vficon_select_region_util(vf, VFICON(vf)->click_id, new_id, TRUE);
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1369 vficon_send_layout_select(vf, new_id);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1370 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1371 else if (event->state & GDK_CONTROL_MASK)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1372 {
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1373 VFICON(vf)->click_id = new_id;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1374 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1375 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1376 {
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1377 VFICON(vf)->click_id = new_id;
633
fe700864cb5a Use vf_* functions where possible.
zas_
parents: 632
diff changeset
1378 vf_select_none(vf);
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1379 vficon_select(vf, new_id);
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1380 vficon_send_layout_select(vf, new_id);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1381 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1382 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1383 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1384
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1385 if (stop_signal)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1386 {
85
9d5c75b5ec28 Fri Oct 20 09:20:10 2006 John Ellis <johne@verizon.net>
gqview
parents: 64
diff changeset
1387 #if 0
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1388 g_signal_stop_emission_by_name(GTK_OBJECT(widget), "key_press_event");
85
9d5c75b5ec28 Fri Oct 20 09:20:10 2006 John Ellis <johne@verizon.net>
gqview
parents: 64
diff changeset
1389 #endif
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1390 tip_unschedule(vf);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1391 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1392
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1393 return stop_signal;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1394 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1395
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1396 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1397 *-------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1398 * mouse
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1399 *-------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1400 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1401
1453
bc3f5c0432f6 gint -> gboolean where applicable. The end (ouf!).
zas_
parents: 1437
diff changeset
1402 static gboolean vficon_motion_cb(GtkWidget *widget, GdkEventButton *bevent, gpointer data)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1403 {
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1404 ViewFile *vf = data;
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
1405 IconData *id;
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
1406
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1407 id = vficon_find_data_by_coord(vf, (gint)bevent->x, (gint)bevent->y, NULL);
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1408 tip_update(vf, id);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1409
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1410 return FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1411 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1412
1453
bc3f5c0432f6 gint -> gboolean where applicable. The end (ouf!).
zas_
parents: 1437
diff changeset
1413 gboolean vficon_press_cb(GtkWidget *widget, GdkEventButton *bevent, gpointer data)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1414 {
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1415 ViewFile *vf = data;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1416 GtkTreeIter iter;
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
1417 IconData *id;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1418
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1419 tip_unschedule(vf);
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1420
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1421 id = vficon_find_data_by_coord(vf, (gint)bevent->x, (gint)bevent->y, &iter);
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1422
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1423 VFICON(vf)->click_id = id;
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1424 vficon_selection_add(vf, VFICON(vf)->click_id, SELECTION_PRELIGHT, &iter);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1425
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1426 switch (bevent->button)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1427 {
448
a73cc0fa14d0 Use explicit names for mouse buttons instead of numbers.
zas_
parents: 446
diff changeset
1428 case MOUSE_BUTTON_LEFT:
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1429 if (!GTK_WIDGET_HAS_FOCUS(vf->listview))
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1430 {
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1431 gtk_widget_grab_focus(vf->listview);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1432 }
1206
d79305a42a9b Switch to fullscreen when double clicking on file in icon or list view. Feature request 1966042. The code was there since a long time but disabled, please report any issue.
zas_
parents: 1202
diff changeset
1433 #if 1
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1434 if (bevent->type == GDK_2BUTTON_PRESS &&
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1435 vf->layout)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1436 {
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1437 vficon_selection_remove(vf, VFICON(vf)->click_id, SELECTION_PRELIGHT, &iter);
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1438 layout_image_full_screen_start(vf->layout);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1439 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1440 #endif
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1441 break;
448
a73cc0fa14d0 Use explicit names for mouse buttons instead of numbers.
zas_
parents: 446
diff changeset
1442 case MOUSE_BUTTON_RIGHT:
659
542bb47fef04 Merge vflist_pop_menu() and vficon_pop_menu() into vf_pop_menu().
zas_
parents: 658
diff changeset
1443 vf->popup = vf_pop_menu(vf);
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1444 gtk_menu_popup(GTK_MENU(vf->popup), NULL, NULL, NULL, NULL, bevent->button, bevent->time);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1445 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1446 default:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1447 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1448 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1449
966
c24a297efbef marks in iconview made clickable
nadvornik
parents: 964
diff changeset
1450 return FALSE;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1451 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1452
1453
bc3f5c0432f6 gint -> gboolean where applicable. The end (ouf!).
zas_
parents: 1437
diff changeset
1453 gboolean vficon_release_cb(GtkWidget *widget, GdkEventButton *bevent, gpointer data)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1454 {
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1455 ViewFile *vf = data;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1456 GtkTreeIter iter;
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
1457 IconData *id = NULL;
1453
bc3f5c0432f6 gint -> gboolean where applicable. The end (ouf!).
zas_
parents: 1437
diff changeset
1458 gboolean was_selected;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1459
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1460 tip_schedule(vf);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1461
580
e27c374460d3 vficon_release_cb(): use switch() and cleanup.
zas_
parents: 579
diff changeset
1462 if ((gint)bevent->x != 0 || (gint)bevent->y != 0)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1463 {
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1464 id = vficon_find_data_by_coord(vf, (gint)bevent->x, (gint)bevent->y, &iter);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1465 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1466
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1467 if (VFICON(vf)->click_id)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1468 {
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1469 vficon_selection_remove(vf, VFICON(vf)->click_id, SELECTION_PRELIGHT, NULL);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1470 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1471
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1472 if (!id || VFICON(vf)->click_id != id) return TRUE;
580
e27c374460d3 vficon_release_cb(): use switch() and cleanup.
zas_
parents: 579
diff changeset
1473
1453
bc3f5c0432f6 gint -> gboolean where applicable. The end (ouf!).
zas_
parents: 1437
diff changeset
1474 was_selected = !!(id->selected & SELECTION_SELECTED);
580
e27c374460d3 vficon_release_cb(): use switch() and cleanup.
zas_
parents: 579
diff changeset
1475
e27c374460d3 vficon_release_cb(): use switch() and cleanup.
zas_
parents: 579
diff changeset
1476 switch (bevent->button)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1477 {
580
e27c374460d3 vficon_release_cb(): use switch() and cleanup.
zas_
parents: 579
diff changeset
1478 case MOUSE_BUTTON_LEFT:
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1479 {
580
e27c374460d3 vficon_release_cb(): use switch() and cleanup.
zas_
parents: 579
diff changeset
1480 vficon_set_focus(vf, id);
e27c374460d3 vficon_release_cb(): use switch() and cleanup.
zas_
parents: 579
diff changeset
1481
e27c374460d3 vficon_release_cb(): use switch() and cleanup.
zas_
parents: 579
diff changeset
1482 if (bevent->state & GDK_CONTROL_MASK)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1483 {
1453
bc3f5c0432f6 gint -> gboolean where applicable. The end (ouf!).
zas_
parents: 1437
diff changeset
1484 gboolean select;
580
e27c374460d3 vficon_release_cb(): use switch() and cleanup.
zas_
parents: 579
diff changeset
1485
e27c374460d3 vficon_release_cb(): use switch() and cleanup.
zas_
parents: 579
diff changeset
1486 select = !(id->selected & SELECTION_SELECTED);
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1487 if ((bevent->state & GDK_SHIFT_MASK) && VFICON(vf)->prev_selection)
580
e27c374460d3 vficon_release_cb(): use switch() and cleanup.
zas_
parents: 579
diff changeset
1488 {
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1489 vficon_select_region_util(vf, VFICON(vf)->prev_selection, id, select);
580
e27c374460d3 vficon_release_cb(): use switch() and cleanup.
zas_
parents: 579
diff changeset
1490 }
e27c374460d3 vficon_release_cb(): use switch() and cleanup.
zas_
parents: 579
diff changeset
1491 else
e27c374460d3 vficon_release_cb(): use switch() and cleanup.
zas_
parents: 579
diff changeset
1492 {
e27c374460d3 vficon_release_cb(): use switch() and cleanup.
zas_
parents: 579
diff changeset
1493 vficon_select_util(vf, id, select);
e27c374460d3 vficon_release_cb(): use switch() and cleanup.
zas_
parents: 579
diff changeset
1494 }
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1495 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1496 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1497 {
633
fe700864cb5a Use vf_* functions where possible.
zas_
parents: 632
diff changeset
1498 vf_select_none(vf);
580
e27c374460d3 vficon_release_cb(): use switch() and cleanup.
zas_
parents: 579
diff changeset
1499
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1500 if ((bevent->state & GDK_SHIFT_MASK) && VFICON(vf)->prev_selection)
580
e27c374460d3 vficon_release_cb(): use switch() and cleanup.
zas_
parents: 579
diff changeset
1501 {
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1502 vficon_select_region_util(vf, VFICON(vf)->prev_selection, id, TRUE);
580
e27c374460d3 vficon_release_cb(): use switch() and cleanup.
zas_
parents: 579
diff changeset
1503 }
e27c374460d3 vficon_release_cb(): use switch() and cleanup.
zas_
parents: 579
diff changeset
1504 else
e27c374460d3 vficon_release_cb(): use switch() and cleanup.
zas_
parents: 579
diff changeset
1505 {
e27c374460d3 vficon_release_cb(): use switch() and cleanup.
zas_
parents: 579
diff changeset
1506 vficon_select_util(vf, id, TRUE);
e27c374460d3 vficon_release_cb(): use switch() and cleanup.
zas_
parents: 579
diff changeset
1507 was_selected = FALSE;
e27c374460d3 vficon_release_cb(): use switch() and cleanup.
zas_
parents: 579
diff changeset
1508 }
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1509 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1510 }
580
e27c374460d3 vficon_release_cb(): use switch() and cleanup.
zas_
parents: 579
diff changeset
1511 break;
e27c374460d3 vficon_release_cb(): use switch() and cleanup.
zas_
parents: 579
diff changeset
1512 case MOUSE_BUTTON_MIDDLE:
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1513 {
580
e27c374460d3 vficon_release_cb(): use switch() and cleanup.
zas_
parents: 579
diff changeset
1514 vficon_select_util(vf, id, !(id->selected & SELECTION_SELECTED));
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1515 }
580
e27c374460d3 vficon_release_cb(): use switch() and cleanup.
zas_
parents: 579
diff changeset
1516 break;
e27c374460d3 vficon_release_cb(): use switch() and cleanup.
zas_
parents: 579
diff changeset
1517 default:
e27c374460d3 vficon_release_cb(): use switch() and cleanup.
zas_
parents: 579
diff changeset
1518 break;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1519 }
580
e27c374460d3 vficon_release_cb(): use switch() and cleanup.
zas_
parents: 579
diff changeset
1520
e27c374460d3 vficon_release_cb(): use switch() and cleanup.
zas_
parents: 579
diff changeset
1521 if (!was_selected && (id->selected & SELECTION_SELECTED))
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1522 {
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1523 vficon_send_layout_select(vf, id);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1524 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1525
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1526 return TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1527 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1528
1453
bc3f5c0432f6 gint -> gboolean where applicable. The end (ouf!).
zas_
parents: 1437
diff changeset
1529 static gboolean vficon_leave_cb(GtkWidget *widget, GdkEventCrossing *event, gpointer data)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1530 {
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1531 ViewFile *vf = data;
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1532
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1533 tip_unschedule(vf);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1534 return FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1535 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1536
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1537 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1538 *-------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1539 * population
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1540 *-------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1541 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1542
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1543 static gboolean vficon_destroy_node_cb(GtkTreeModel *store, GtkTreePath *tpath, GtkTreeIter *iter, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1544 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1545 GList *list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1546
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1547 gtk_tree_model_get(store, iter, FILE_COLUMN_POINTER, &list, -1);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1548 g_list_free(list);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1549
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1550 return FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1551 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1552
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1553 static void vficon_clear_store(ViewFile *vf)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1554 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1555 GtkTreeModel *store;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1556
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1557 store = gtk_tree_view_get_model(GTK_TREE_VIEW(vf->listview));
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1558 gtk_tree_model_foreach(store, vficon_destroy_node_cb, NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1559
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1560 gtk_list_store_clear(GTK_LIST_STORE(store));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1561 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1562
838
9bd49e725ad3 use FileData in thumb_loader
nadvornik
parents: 832
diff changeset
1563 static void vficon_set_thumb(ViewFile *vf, FileData *fd)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1564 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1565 GtkTreeModel *store;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1566 GtkTreeIter iter;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1567 GList *list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1568
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1569 if (!vficon_find_iter(vf, vficon_icon_data(vf, fd), &iter, NULL)) return;
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1570
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1571 store = gtk_tree_view_get_model(GTK_TREE_VIEW(vf->listview));
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1572
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1573 gtk_tree_model_get(store, &iter, FILE_COLUMN_POINTER, &list, -1);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1574 gtk_list_store_set(GTK_LIST_STORE(store), &iter, FILE_COLUMN_POINTER, list, -1);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1575 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1576
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1577 static GList *vficon_add_row(ViewFile *vf, GtkTreeIter *iter)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1578 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1579 GtkListStore *store;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1580 GList *list = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1581 gint i;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1582
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1583 for (i = 0; i < VFICON(vf)->columns; i++) list = g_list_prepend(list, NULL);
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1584
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1585 store = GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(vf->listview)));
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1586 gtk_list_store_append(store, iter);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1587 gtk_list_store_set(store, iter, FILE_COLUMN_POINTER, list, -1);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1588
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1589 return list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1590 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1591
1453
bc3f5c0432f6 gint -> gboolean where applicable. The end (ouf!).
zas_
parents: 1437
diff changeset
1592 static void vficon_populate(ViewFile *vf, gboolean resize, gboolean keep_position)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1593 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1594 GtkTreeModel *store;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1595 GtkTreePath *tpath;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1596 GList *work;
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
1597 IconData *visible_id = NULL;
805
5a3fc27147ab improved vficon_populate
nadvornik
parents: 804
diff changeset
1598 gint r, c;
1453
bc3f5c0432f6 gint -> gboolean where applicable. The end (ouf!).
zas_
parents: 1437
diff changeset
1599 gboolean valid;
805
5a3fc27147ab improved vficon_populate
nadvornik
parents: 804
diff changeset
1600 GtkTreeIter iter;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1601
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1602 vficon_verify_selections(vf);
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1603
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1604 store = gtk_tree_view_get_model(GTK_TREE_VIEW(vf->listview));
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1605
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1606 if (keep_position && GTK_WIDGET_REALIZED(vf->listview) &&
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1607 gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(vf->listview), 0, 0, &tpath, NULL, NULL, NULL))
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1608 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1609 GtkTreeIter iter;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1610 GList *list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1611
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1612 gtk_tree_model_get_iter(store, &iter, tpath);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1613 gtk_tree_path_free(tpath);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1614
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1615 gtk_tree_model_get(store, &iter, FILE_COLUMN_POINTER, &list, -1);
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
1616 if (list) visible_id = list->data;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1617 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1618
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1619
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1620 if (resize)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1621 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1622 gint i;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1623 gint thumb_width;
805
5a3fc27147ab improved vficon_populate
nadvornik
parents: 804
diff changeset
1624
5a3fc27147ab improved vficon_populate
nadvornik
parents: 804
diff changeset
1625 vficon_clear_store(vf);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1626
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1627 thumb_width = vficon_get_icon_width(vf);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1628
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1629 for (i = 0; i < VFICON_MAX_COLUMNS; i++)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1630 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1631 GtkTreeViewColumn *column;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1632 GtkCellRenderer *cell;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1633 GList *list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1634
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1635 column = gtk_tree_view_get_column(GTK_TREE_VIEW(vf->listview), i);
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1636 gtk_tree_view_column_set_visible(column, (i < VFICON(vf)->columns));
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1637 gtk_tree_view_column_set_fixed_width(column, thumb_width + (THUMB_BORDER_PADDING * 6));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1638
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1639 list = gtk_tree_view_column_get_cell_renderers(column);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1640 cell = (list) ? list->data : NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1641 g_list_free(list);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1642
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1643 if (cell && GQV_IS_CELL_RENDERER_ICON(cell))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1644 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1645 g_object_set(G_OBJECT(cell), "fixed_width", thumb_width,
333
767b53cd9ab7 Rename thumbnails related options.
zas_
parents: 330
diff changeset
1646 "fixed_height", options->thumbnails.max_height,
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1647 "show_text", VFICON(vf)->show_text,
852
8308d3606991 show marks in iconview
nadvornik
parents: 851
diff changeset
1648 "show_marks", vf->marks_enabled,
8308d3606991 show marks in iconview
nadvornik
parents: 851
diff changeset
1649 "num_marks", FILEDATA_MARKS_SIZE,
8308d3606991 show marks in iconview
nadvornik
parents: 851
diff changeset
1650 NULL);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1651 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1652 }
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1653 if (GTK_WIDGET_REALIZED(vf->listview)) gtk_tree_view_columns_autosize(GTK_TREE_VIEW(vf->listview));
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1654 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1655
805
5a3fc27147ab improved vficon_populate
nadvornik
parents: 804
diff changeset
1656 r = -1;
5a3fc27147ab improved vficon_populate
nadvornik
parents: 804
diff changeset
1657 c = 0;
5a3fc27147ab improved vficon_populate
nadvornik
parents: 804
diff changeset
1658
5a3fc27147ab improved vficon_populate
nadvornik
parents: 804
diff changeset
1659 valid = gtk_tree_model_iter_children(store, &iter, NULL);
5a3fc27147ab improved vficon_populate
nadvornik
parents: 804
diff changeset
1660
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1661 work = vf->list;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1662 while (work)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1663 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1664 GList *list;
805
5a3fc27147ab improved vficon_populate
nadvornik
parents: 804
diff changeset
1665 r++;
5a3fc27147ab improved vficon_populate
nadvornik
parents: 804
diff changeset
1666 c = 0;
5a3fc27147ab improved vficon_populate
nadvornik
parents: 804
diff changeset
1667 if (valid)
5a3fc27147ab improved vficon_populate
nadvornik
parents: 804
diff changeset
1668 {
5a3fc27147ab improved vficon_populate
nadvornik
parents: 804
diff changeset
1669 gtk_tree_model_get(store, &iter, FILE_COLUMN_POINTER, &list, -1);
5a3fc27147ab improved vficon_populate
nadvornik
parents: 804
diff changeset
1670 gtk_list_store_set(GTK_LIST_STORE(store), &iter, FILE_COLUMN_POINTER, list, -1);
5a3fc27147ab improved vficon_populate
nadvornik
parents: 804
diff changeset
1671 }
5a3fc27147ab improved vficon_populate
nadvornik
parents: 804
diff changeset
1672 else
5a3fc27147ab improved vficon_populate
nadvornik
parents: 804
diff changeset
1673 {
5a3fc27147ab improved vficon_populate
nadvornik
parents: 804
diff changeset
1674 list = vficon_add_row(vf, &iter);
5a3fc27147ab improved vficon_populate
nadvornik
parents: 804
diff changeset
1675 }
5a3fc27147ab improved vficon_populate
nadvornik
parents: 804
diff changeset
1676
5a3fc27147ab improved vficon_populate
nadvornik
parents: 804
diff changeset
1677 while (list)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1678 {
585
4875d67823b4 Revert wrong patch rev 676.
zas_
parents: 583
diff changeset
1679 IconData *id;
4875d67823b4 Revert wrong patch rev 676.
zas_
parents: 583
diff changeset
1680
805
5a3fc27147ab improved vficon_populate
nadvornik
parents: 804
diff changeset
1681 if (work)
5a3fc27147ab improved vficon_populate
nadvornik
parents: 804
diff changeset
1682 {
5a3fc27147ab improved vficon_populate
nadvornik
parents: 804
diff changeset
1683 id = work->data;
5a3fc27147ab improved vficon_populate
nadvornik
parents: 804
diff changeset
1684 work = work->next;
5a3fc27147ab improved vficon_populate
nadvornik
parents: 804
diff changeset
1685 c++;
5a3fc27147ab improved vficon_populate
nadvornik
parents: 804
diff changeset
1686
5a3fc27147ab improved vficon_populate
nadvornik
parents: 804
diff changeset
1687 id->row = r;
5a3fc27147ab improved vficon_populate
nadvornik
parents: 804
diff changeset
1688 }
5a3fc27147ab improved vficon_populate
nadvornik
parents: 804
diff changeset
1689 else
5a3fc27147ab improved vficon_populate
nadvornik
parents: 804
diff changeset
1690 {
5a3fc27147ab improved vficon_populate
nadvornik
parents: 804
diff changeset
1691 id = NULL;
5a3fc27147ab improved vficon_populate
nadvornik
parents: 804
diff changeset
1692 }
5a3fc27147ab improved vficon_populate
nadvornik
parents: 804
diff changeset
1693
5a3fc27147ab improved vficon_populate
nadvornik
parents: 804
diff changeset
1694 list->data = id;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1695 list = list->next;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1696 }
805
5a3fc27147ab improved vficon_populate
nadvornik
parents: 804
diff changeset
1697 if (valid) valid = gtk_tree_model_iter_next(store, &iter);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1698 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1699
805
5a3fc27147ab improved vficon_populate
nadvornik
parents: 804
diff changeset
1700 r++;
5a3fc27147ab improved vficon_populate
nadvornik
parents: 804
diff changeset
1701 while (valid)
5a3fc27147ab improved vficon_populate
nadvornik
parents: 804
diff changeset
1702 {
5a3fc27147ab improved vficon_populate
nadvornik
parents: 804
diff changeset
1703 GList *list;
5a3fc27147ab improved vficon_populate
nadvornik
parents: 804
diff changeset
1704
5a3fc27147ab improved vficon_populate
nadvornik
parents: 804
diff changeset
1705 gtk_tree_model_get(store, &iter, FILE_COLUMN_POINTER, &list, -1);
5a3fc27147ab improved vficon_populate
nadvornik
parents: 804
diff changeset
1706 valid = gtk_list_store_remove(GTK_LIST_STORE(store), &iter);
5a3fc27147ab improved vficon_populate
nadvornik
parents: 804
diff changeset
1707 g_list_free(list);
5a3fc27147ab improved vficon_populate
nadvornik
parents: 804
diff changeset
1708 }
5a3fc27147ab improved vficon_populate
nadvornik
parents: 804
diff changeset
1709
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1710 VFICON(vf)->rows = r;
805
5a3fc27147ab improved vficon_populate
nadvornik
parents: 804
diff changeset
1711
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
1712 if (visible_id &&
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1713 gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(vf->listview), 0, 0, &tpath, NULL, NULL, NULL))
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1714 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1715 GtkTreeIter iter;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1716 GList *list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1717
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1718 gtk_tree_model_get_iter(store, &iter, tpath);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1719 gtk_tree_path_free(tpath);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1720
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1721 gtk_tree_model_get(store, &iter, FILE_COLUMN_POINTER, &list, -1);
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
1722 if (g_list_find(list, visible_id) == NULL &&
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1723 vficon_find_iter(vf, visible_id, &iter, NULL))
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1724 {
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1725 tree_view_row_make_visible(GTK_TREE_VIEW(vf->listview), &iter, FALSE);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1726 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1727 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1728
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1729
633
fe700864cb5a Use vf_* functions where possible.
zas_
parents: 632
diff changeset
1730 vf_send_update(vf);
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1731 vficon_thumb_update(vf);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1732 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1733
1453
bc3f5c0432f6 gint -> gboolean where applicable. The end (ouf!).
zas_
parents: 1437
diff changeset
1734 static void vficon_populate_at_new_size(ViewFile *vf, gint w, gint h, gboolean force)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1735 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1736 gint new_cols;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1737 gint thumb_width;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1738
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1739 thumb_width = vficon_get_icon_width(vf);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1740
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1741 new_cols = w / (thumb_width + (THUMB_BORDER_PADDING * 6));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1742 if (new_cols < 1) new_cols = 1;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1743
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1744 if (!force && new_cols == VFICON(vf)->columns) return;
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1745
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1746 VFICON(vf)->columns = new_cols;
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1747
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1748 vficon_populate(vf, TRUE, TRUE);
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1749
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1750 DEBUG_1("col tab pop cols=%d rows=%d", VFICON(vf)->columns, VFICON(vf)->rows);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1751 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1752
817
ad7f56cea841 dropped vficon_sync, use vficon_refresh everywhere
nadvornik
parents: 814
diff changeset
1753 #if 0
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1754 static void vficon_sync(ViewFile *vf)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1755 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1756 GtkTreeModel *store;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1757 GtkTreeIter iter;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1758 GList *work;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1759 gint r, c;
804
e702eaa6d1df vficon_sync speed-up
nadvornik
parents: 803
diff changeset
1760 gint valid;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1761
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1762 if (VFICON(vf)->rows == 0) return;
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1763
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1764 store = gtk_tree_view_get_model(GTK_TREE_VIEW(vf->listview));
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1765
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1766 r = -1;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1767 c = 0;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1768
804
e702eaa6d1df vficon_sync speed-up
nadvornik
parents: 803
diff changeset
1769 valid = gtk_tree_model_iter_children(store, &iter, NULL);
e702eaa6d1df vficon_sync speed-up
nadvornik
parents: 803
diff changeset
1770
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1771 work = vf->list;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1772 while (work)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1773 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1774 GList *list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1775 r++;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1776 c = 0;
804
e702eaa6d1df vficon_sync speed-up
nadvornik
parents: 803
diff changeset
1777 if (valid)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1778 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1779 gtk_tree_model_get(store, &iter, FILE_COLUMN_POINTER, &list, -1);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1780 gtk_list_store_set(GTK_LIST_STORE(store), &iter, FILE_COLUMN_POINTER, list, -1);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1781 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1782 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1783 {
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1784 list = vficon_add_row(vf, &iter);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1785 }
442
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 380
diff changeset
1786
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1787 while (list)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1788 {
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
1789 IconData *id;
111
3a69a7a3f461 Wed Nov 15 02:05:27 2006 John Ellis <johne@verizon.net>
gqview
parents: 85
diff changeset
1790
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1791 if (work)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1792 {
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
1793 id = work->data;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1794 work = work->next;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1795 c++;
111
3a69a7a3f461 Wed Nov 15 02:05:27 2006 John Ellis <johne@verizon.net>
gqview
parents: 85
diff changeset
1796
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
1797 id->row = r;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1798 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1799 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1800 {
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
1801 id = NULL;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1802 }
111
3a69a7a3f461 Wed Nov 15 02:05:27 2006 John Ellis <johne@verizon.net>
gqview
parents: 85
diff changeset
1803
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
1804 list->data = id;
111
3a69a7a3f461 Wed Nov 15 02:05:27 2006 John Ellis <johne@verizon.net>
gqview
parents: 85
diff changeset
1805 list = list->next;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1806 }
804
e702eaa6d1df vficon_sync speed-up
nadvornik
parents: 803
diff changeset
1807 if (valid) valid = gtk_tree_model_iter_next(store, &iter);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1808 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1809
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1810 r++;
804
e702eaa6d1df vficon_sync speed-up
nadvornik
parents: 803
diff changeset
1811 while (valid)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1812 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1813 GList *list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1814
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1815 gtk_tree_model_get(store, &iter, FILE_COLUMN_POINTER, &list, -1);
804
e702eaa6d1df vficon_sync speed-up
nadvornik
parents: 803
diff changeset
1816 valid = gtk_list_store_remove(GTK_LIST_STORE(store), &iter);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1817 g_list_free(list);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1818 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1819
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1820 VFICON(vf)->rows = r;
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1821
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1822 vficon_update_focus(vf);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1823 }
817
ad7f56cea841 dropped vficon_sync, use vficon_refresh everywhere
nadvornik
parents: 814
diff changeset
1824 #endif
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1825
812
d29c2d191c58 use vficon_refresh for updating
nadvornik
parents: 811
diff changeset
1826 #if 0
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1827 static void vficon_sync_idle(ViewFile *vf)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1828 {
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1829 if (VFICON(vf)->sync_idle_id == -1)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1830 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1831 /* high priority, the view needs to be resynced before a redraw
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1832 * may contain invalid pointers at this time
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1833 */
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
1834 VFICON(vf)->sync_idle_id = g_idle_add_full(G_PRIORITY_HIGH, vficon_sync_idle_cb, vf, NULL);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1835 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1836 }
812
d29c2d191c58 use vficon_refresh for updating
nadvornik
parents: 811
diff changeset
1837 #endif
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1838
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1839 static void vficon_sized_cb(GtkWidget *widget, GtkAllocation *allocation, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1840 {
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1841 ViewFile *vf = data;
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1842
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1843 vficon_populate_at_new_size(vf, allocation->width, allocation->height, FALSE);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1844 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1845
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1846 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1847 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1848 * misc
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1849 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1850 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1851
1453
bc3f5c0432f6 gint -> gboolean where applicable. The end (ouf!).
zas_
parents: 1437
diff changeset
1852 void vficon_sort_set(ViewFile *vf, SortType type, gboolean ascend)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1853 {
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1854 if (vf->sort_method == type && vf->sort_ascend == ascend) return;
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1855
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1856 vf->sort_method = type;
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1857 vf->sort_ascend = ascend;
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1858
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1859 if (!vf->list) return;
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1860
817
ad7f56cea841 dropped vficon_sync, use vficon_refresh everywhere
nadvornik
parents: 814
diff changeset
1861 vf_refresh(vf);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1862 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1863
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1864 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1865 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1866 * thumb updates
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1867 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1868 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1869
1453
bc3f5c0432f6 gint -> gboolean where applicable. The end (ouf!).
zas_
parents: 1437
diff changeset
1870 static gboolean vficon_thumb_next(ViewFile *vf);
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1871
843
add46f9c895c more robust thumbs progress bar
nadvornik
parents: 838
diff changeset
1872 static gdouble vficon_thumb_progress(ViewFile *vf)
add46f9c895c more robust thumbs progress bar
nadvornik
parents: 838
diff changeset
1873 {
add46f9c895c more robust thumbs progress bar
nadvornik
parents: 838
diff changeset
1874 gint count = 0;
add46f9c895c more robust thumbs progress bar
nadvornik
parents: 838
diff changeset
1875 gint done = 0;
add46f9c895c more robust thumbs progress bar
nadvornik
parents: 838
diff changeset
1876
add46f9c895c more robust thumbs progress bar
nadvornik
parents: 838
diff changeset
1877 GList *work = vf->list;
add46f9c895c more robust thumbs progress bar
nadvornik
parents: 838
diff changeset
1878 while (work)
add46f9c895c more robust thumbs progress bar
nadvornik
parents: 838
diff changeset
1879 {
add46f9c895c more robust thumbs progress bar
nadvornik
parents: 838
diff changeset
1880 IconData *id = work->data;
add46f9c895c more robust thumbs progress bar
nadvornik
parents: 838
diff changeset
1881 FileData *fd = id->fd;
add46f9c895c more robust thumbs progress bar
nadvornik
parents: 838
diff changeset
1882 work = work->next;
add46f9c895c more robust thumbs progress bar
nadvornik
parents: 838
diff changeset
1883
845
06929cbcd796 renamed fd->pixbuf to fd->thumb_pixbuf
nadvornik
parents: 843
diff changeset
1884 if (fd->thumb_pixbuf) done++;
843
add46f9c895c more robust thumbs progress bar
nadvornik
parents: 838
diff changeset
1885 count++;
add46f9c895c more robust thumbs progress bar
nadvornik
parents: 838
diff changeset
1886 }
add46f9c895c more robust thumbs progress bar
nadvornik
parents: 838
diff changeset
1887 DEBUG_1("thumb progress: %d of %d", done, count);
add46f9c895c more robust thumbs progress bar
nadvornik
parents: 838
diff changeset
1888 return (gdouble)done / count;
add46f9c895c more robust thumbs progress bar
nadvornik
parents: 838
diff changeset
1889 }
add46f9c895c more robust thumbs progress bar
nadvornik
parents: 838
diff changeset
1890
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1891 static void vficon_thumb_status(ViewFile *vf, gdouble val, const gchar *text)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1892 {
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1893 if (vf->func_thumb_status)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1894 {
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1895 vf->func_thumb_status(vf, val, text, vf->data_thumb_status);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1896 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1897 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1898
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1899 static void vficon_thumb_cleanup(ViewFile *vf)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1900 {
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1901 vficon_thumb_status(vf, 0.0, NULL);
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1902
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1903 vf->thumbs_running = FALSE;
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1904
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1905 thumb_loader_free(vf->thumbs_loader);
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1906 vf->thumbs_loader = NULL;
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1907
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1908 vf->thumbs_filedata = NULL;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1909 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1910
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1911 static void vficon_thumb_stop(ViewFile *vf)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1912 {
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1913 if (vf->thumbs_running) vficon_thumb_cleanup(vf);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1914 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1915
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1916 static void vficon_thumb_do(ViewFile *vf, ThumbLoader *tl, FileData *fd)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1917 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1918 if (!fd) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1919
838
9bd49e725ad3 use FileData in thumb_loader
nadvornik
parents: 832
diff changeset
1920 vficon_set_thumb(vf, fd);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1921
843
add46f9c895c more robust thumbs progress bar
nadvornik
parents: 838
diff changeset
1922 vficon_thumb_status(vf, vficon_thumb_progress(vf), _("Loading thumbs..."));
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1923 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1924
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1925 static void vficon_thumb_error_cb(ThumbLoader *tl, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1926 {
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1927 ViewFile *vf = data;
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1928
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1929 if (vf->thumbs_filedata && vf->thumbs_loader == tl)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1930 {
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1931 vficon_thumb_do(vf, tl, vf->thumbs_filedata);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1932 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1933
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1934 while (vficon_thumb_next(vf));
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1935 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1936
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1937 static void vficon_thumb_done_cb(ThumbLoader *tl, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1938 {
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1939 ViewFile *vf = data;
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1940
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1941 if (vf->thumbs_filedata && vf->thumbs_loader == tl)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1942 {
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1943 vficon_thumb_do(vf, tl, vf->thumbs_filedata);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1944 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1945
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1946 while (vficon_thumb_next(vf));
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1947 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1948
1453
bc3f5c0432f6 gint -> gboolean where applicable. The end (ouf!).
zas_
parents: 1437
diff changeset
1949 static gboolean vficon_thumb_next(ViewFile *vf)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1950 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1951 GtkTreePath *tpath;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1952 FileData *fd = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1953
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1954 if (!GTK_WIDGET_REALIZED(vf->listview))
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1955 {
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1956 vficon_thumb_status(vf, 0.0, NULL);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1957 return FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1958 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1959
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1960 if (gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(vf->listview), 0, 0, &tpath, NULL, NULL, NULL))
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1961 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1962 GtkTreeModel *store;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1963 GtkTreeIter iter;
1437
a3d3208b0c50 gint -> gboolean.
zas_
parents: 1365
diff changeset
1964 gboolean valid = TRUE;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1965
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1966 store = gtk_tree_view_get_model(GTK_TREE_VIEW(vf->listview));
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1967 gtk_tree_model_get_iter(store, &iter, tpath);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1968 gtk_tree_path_free(tpath);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1969
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1970 while (!fd && valid && tree_view_row_get_visibility(GTK_TREE_VIEW(vf->listview), &iter, FALSE) == 0)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1971 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1972 GList *list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1973
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1974 gtk_tree_model_get(store, &iter, FILE_COLUMN_POINTER, &list, -1);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1975
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1976 while (!fd && list)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1977 {
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
1978 IconData *id = list->data;
845
06929cbcd796 renamed fd->pixbuf to fd->thumb_pixbuf
nadvornik
parents: 843
diff changeset
1979 if (id && !id->fd->thumb_pixbuf) fd = id->fd;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1980 list = list->next;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1981 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1982
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1983 valid = gtk_tree_model_iter_next(store, &iter);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1984 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1985 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1986
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1987 /* then find first undone */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1988
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1989 if (!fd)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1990 {
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
1991 GList *work = vf->list;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1992 while (work && !fd)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1993 {
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
1994 IconData *id = work->data;
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
1995 FileData *fd_p = id->fd;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1996 work = work->next;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1997
845
06929cbcd796 renamed fd->pixbuf to fd->thumb_pixbuf
nadvornik
parents: 843
diff changeset
1998 if (!fd_p->thumb_pixbuf) fd = fd_p;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1999 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2000 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2001
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2002 if (!fd)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2003 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2004 /* done */
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2005 vficon_thumb_cleanup(vf);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2006 return FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2007 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2008
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2009 vf->thumbs_filedata = fd;
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2010
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2011 thumb_loader_free(vf->thumbs_loader);
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2012
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2013 vf->thumbs_loader = thumb_loader_new(options->thumbnails.max_width, options->thumbnails.max_height);
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2014 thumb_loader_set_callbacks(vf->thumbs_loader,
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2015 vficon_thumb_done_cb,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2016 vficon_thumb_error_cb,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2017 NULL,
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2018 vf);
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2019
838
9bd49e725ad3 use FileData in thumb_loader
nadvornik
parents: 832
diff changeset
2020 if (!thumb_loader_start(vf->thumbs_loader, fd))
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2021 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2022 /* set icon to unknown, continue */
838
9bd49e725ad3 use FileData in thumb_loader
nadvornik
parents: 832
diff changeset
2023 DEBUG_1("thumb loader start failed %s", fd->path);
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2024 vficon_thumb_do(vf, vf->thumbs_loader, fd);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2025
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2026 return TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2027 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2028
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2029 return FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2030 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2031
1506
d352a44545a6 Force thumbnails refreshing when thumbnails dimensions are modified through Preferences.
zas_
parents: 1503
diff changeset
2032 void vficon_thumb_update(ViewFile *vf)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2033 {
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2034 vficon_thumb_stop(vf);
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2035
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2036 vficon_thumb_status(vf, 0.0, _("Loading thumbs..."));
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2037 vf->thumbs_running = TRUE;
1506
d352a44545a6 Force thumbnails refreshing when thumbnails dimensions are modified through Preferences.
zas_
parents: 1503
diff changeset
2038
d352a44545a6 Force thumbnails refreshing when thumbnails dimensions are modified through Preferences.
zas_
parents: 1503
diff changeset
2039 if (thumb_format_changed)
d352a44545a6 Force thumbnails refreshing when thumbnails dimensions are modified through Preferences.
zas_
parents: 1503
diff changeset
2040 {
d352a44545a6 Force thumbnails refreshing when thumbnails dimensions are modified through Preferences.
zas_
parents: 1503
diff changeset
2041 GList *work = vf->list;
d352a44545a6 Force thumbnails refreshing when thumbnails dimensions are modified through Preferences.
zas_
parents: 1503
diff changeset
2042 while (work)
d352a44545a6 Force thumbnails refreshing when thumbnails dimensions are modified through Preferences.
zas_
parents: 1503
diff changeset
2043 {
d352a44545a6 Force thumbnails refreshing when thumbnails dimensions are modified through Preferences.
zas_
parents: 1503
diff changeset
2044 IconData *id = work->data;
d352a44545a6 Force thumbnails refreshing when thumbnails dimensions are modified through Preferences.
zas_
parents: 1503
diff changeset
2045 FileData *fd = id->fd;
d352a44545a6 Force thumbnails refreshing when thumbnails dimensions are modified through Preferences.
zas_
parents: 1503
diff changeset
2046 if (fd->thumb_pixbuf)
d352a44545a6 Force thumbnails refreshing when thumbnails dimensions are modified through Preferences.
zas_
parents: 1503
diff changeset
2047 {
d352a44545a6 Force thumbnails refreshing when thumbnails dimensions are modified through Preferences.
zas_
parents: 1503
diff changeset
2048 g_object_unref(fd->thumb_pixbuf);
d352a44545a6 Force thumbnails refreshing when thumbnails dimensions are modified through Preferences.
zas_
parents: 1503
diff changeset
2049 fd->thumb_pixbuf = NULL;
d352a44545a6 Force thumbnails refreshing when thumbnails dimensions are modified through Preferences.
zas_
parents: 1503
diff changeset
2050 }
d352a44545a6 Force thumbnails refreshing when thumbnails dimensions are modified through Preferences.
zas_
parents: 1503
diff changeset
2051 work = work->next;
d352a44545a6 Force thumbnails refreshing when thumbnails dimensions are modified through Preferences.
zas_
parents: 1503
diff changeset
2052 }
d352a44545a6 Force thumbnails refreshing when thumbnails dimensions are modified through Preferences.
zas_
parents: 1503
diff changeset
2053
d352a44545a6 Force thumbnails refreshing when thumbnails dimensions are modified through Preferences.
zas_
parents: 1503
diff changeset
2054 thumb_format_changed = FALSE;
d352a44545a6 Force thumbnails refreshing when thumbnails dimensions are modified through Preferences.
zas_
parents: 1503
diff changeset
2055 }
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2056
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2057 while (vficon_thumb_next(vf));
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2058 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2059
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2060 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2061 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2062 * row stuff
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2063 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2064 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2065
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2066 FileData *vficon_index_get_data(ViewFile *vf, gint row)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2067 {
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
2068 IconData *id;
442
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 380
diff changeset
2069
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2070 id = g_list_nth_data(vf->list, row);
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
2071 return id ? id->fd : NULL;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2072 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2073
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2074
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2075 gint vficon_index_by_fd(ViewFile *vf, FileData *in_fd)
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
2076 {
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
2077 gint p = 0;
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
2078 GList *work;
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
2079
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
2080 if (!in_fd) return -1;
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
2081
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2082 work = vf->list;
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
2083 while (work)
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
2084 {
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
2085 IconData *id = work->data;
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
2086 FileData *fd = id->fd;
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
2087 if (fd == in_fd) return p;
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
2088 work = work->next;
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
2089 p++;
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
2090 }
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
2091
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
2092 return -1;
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
2093 }
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
2094
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2095 static gint vficon_index_by_id(ViewFile *vf, IconData *in_id)
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
2096 {
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
2097 gint p = 0;
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
2098 GList *work;
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
2099
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
2100 if (!in_id) return -1;
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
2101
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2102 work = vf->list;
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
2103 while (work)
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
2104 {
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
2105 IconData *id = work->data;
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
2106 if (id == in_id) return p;
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
2107 work = work->next;
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
2108 p++;
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
2109 }
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
2110
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
2111 return -1;
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
2112 }
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
2113
736
a7289f9e8d29 Fix signed vs unsigned warnings.
zas_
parents: 671
diff changeset
2114 guint vficon_count(ViewFile *vf, gint64 *bytes)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2115 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2116 if (bytes)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2117 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2118 gint64 b = 0;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2119 GList *work;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2120
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2121 work = vf->list;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2122 while (work)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2123 {
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
2124 IconData *id = work->data;
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
2125 FileData *fd = id->fd;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2126 work = work->next;
579
2ef88100cee2 Minor tidyup.
zas_
parents: 578
diff changeset
2127
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2128 b += fd->size;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2129 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2130
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2131 *bytes = b;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2132 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2133
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2134 return g_list_length(vf->list);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2135 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2136
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2137 GList *vficon_get_list(ViewFile *vf)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2138 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2139 GList *list = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2140 GList *work;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2141
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2142 work = vf->list;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2143 while (work)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2144 {
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
2145 IconData *id = work->data;
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
2146 FileData *fd = id->fd;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2147 work = work->next;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2148
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
2149 list = g_list_prepend(list, file_data_ref(fd));
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2150 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2151
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2152 return g_list_reverse(list);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2153 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2154
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2155 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2156 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2157 *
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2158 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2159 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2160
1453
bc3f5c0432f6 gint -> gboolean where applicable. The end (ouf!).
zas_
parents: 1437
diff changeset
2161 static gboolean vficon_refresh_real(ViewFile *vf, gboolean keep_position)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2162 {
1437
a3d3208b0c50 gint -> gboolean.
zas_
parents: 1365
diff changeset
2163 gboolean ret = TRUE;
810
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2164 GList *work, *work_fd;
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
2165 IconData *focus_id;
810
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2166 GList *new_filelist = NULL;
996
4794cf5ecd8e correctly maintain selection during iconlist refresh
nadvornik
parents: 995
diff changeset
2167 FileData *first_selected = NULL;
832
a14d7da2736d iconlist_refresh optimization
nadvornik
parents: 831
diff changeset
2168 GList *new_iconlist = NULL;
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
2169
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
2170 focus_id = VFICON(vf)->focus_id;
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2171
783
d6a7fb4b8e7c replaced directory path with FileData* dir_fd
nadvornik
parents: 763
diff changeset
2172 if (vf->dir_fd)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2173 {
810
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2174 ret = filelist_read(vf->dir_fd, &new_filelist, NULL);
964
ba1d3c4bc0cd implemented marks filter
nadvornik
parents: 904
diff changeset
2175 new_filelist = file_data_filter_marks_list(new_filelist, vf_marks_get_filter(vf));
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2176 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2177
810
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2178 vf->list = iconlist_sort(vf->list, vf->sort_method, vf->sort_ascend); /* the list might not be sorted if there were renames */
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2179 new_filelist = filelist_sort(new_filelist, vf->sort_method, vf->sort_ascend);
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2180
996
4794cf5ecd8e correctly maintain selection during iconlist refresh
nadvornik
parents: 995
diff changeset
2181 if (VFICON(vf)->selection)
4794cf5ecd8e correctly maintain selection during iconlist refresh
nadvornik
parents: 995
diff changeset
2182 {
4794cf5ecd8e correctly maintain selection during iconlist refresh
nadvornik
parents: 995
diff changeset
2183 first_selected = ((IconData *)(VFICON(vf)->selection->data))->fd;
4794cf5ecd8e correctly maintain selection during iconlist refresh
nadvornik
parents: 995
diff changeset
2184 file_data_ref(first_selected);
4794cf5ecd8e correctly maintain selection during iconlist refresh
nadvornik
parents: 995
diff changeset
2185 g_list_free(VFICON(vf)->selection);
4794cf5ecd8e correctly maintain selection during iconlist refresh
nadvornik
parents: 995
diff changeset
2186 VFICON(vf)->selection = NULL;
4794cf5ecd8e correctly maintain selection during iconlist refresh
nadvornik
parents: 995
diff changeset
2187
4794cf5ecd8e correctly maintain selection during iconlist refresh
nadvornik
parents: 995
diff changeset
2188
4794cf5ecd8e correctly maintain selection during iconlist refresh
nadvornik
parents: 995
diff changeset
2189 }
811
f1ce59985518 handle deletion of selected files
nadvornik
parents: 810
diff changeset
2190
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2191 /* check for same files from old_list */
810
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2192 work = vf->list;
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2193 work_fd = new_filelist;
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2194 while (work || work_fd)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2195 {
810
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2196 IconData *id = NULL;
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2197 FileData *fd = NULL;
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2198 FileData *new_fd = NULL;
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2199 gint match;
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2200
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2201 if (work && work_fd)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2202 {
810
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2203 id = work->data;
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2204 fd = id->fd;
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2205
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2206 new_fd = work_fd->data;
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2207
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2208 if (fd == new_fd)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2209 {
810
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2210 /* not changed, go to next */
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2211 work = work->next;
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2212 work_fd = work_fd->next;
996
4794cf5ecd8e correctly maintain selection during iconlist refresh
nadvornik
parents: 995
diff changeset
2213 if (id->selected & SELECTION_SELECTED)
4794cf5ecd8e correctly maintain selection during iconlist refresh
nadvornik
parents: 995
diff changeset
2214 {
4794cf5ecd8e correctly maintain selection during iconlist refresh
nadvornik
parents: 995
diff changeset
2215 VFICON(vf)->selection = g_list_prepend(VFICON(vf)->selection, id);
4794cf5ecd8e correctly maintain selection during iconlist refresh
nadvornik
parents: 995
diff changeset
2216 }
810
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2217 continue;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2218 }
810
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2219
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2220 match = filelist_sort_compare_filedata_full(fd, new_fd, vf->sort_method, vf->sort_ascend);
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2221 if (match == 0) g_warning("multiple fd for the same path");
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2222 }
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2223 else if (work)
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2224 {
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2225 id = work->data;
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2226 fd = id->fd;
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2227 match = -1;
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2228 }
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2229 else /* work_fd */
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2230 {
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2231 new_fd = work_fd->data;
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2232 match = 1;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2233 }
810
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2234
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2235 if (match < 0)
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2236 {
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2237 /* file no longer exists, delete from vf->list */
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2238 GList *to_delete = work;
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2239 work = work->next;
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
2240 if (id == VFICON(vf)->prev_selection) VFICON(vf)->prev_selection = NULL;
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
2241 if (id == VFICON(vf)->click_id) VFICON(vf)->click_id = NULL;
810
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2242 file_data_unref(fd);
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2243 g_free(id);
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2244 vf->list = g_list_delete_link(vf->list, to_delete);
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2245 }
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2246 else
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2247 {
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2248 /* new file, add to vf->list */
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2249 id = g_new0(IconData, 1);
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2250
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2251 id->selected = SELECTION_NONE;
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2252 id->row = -1;
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2253 id->fd = file_data_ref(new_fd);
832
a14d7da2736d iconlist_refresh optimization
nadvornik
parents: 831
diff changeset
2254 if (work)
a14d7da2736d iconlist_refresh optimization
nadvornik
parents: 831
diff changeset
2255 vf->list = g_list_insert_before(vf->list, work, id);
a14d7da2736d iconlist_refresh optimization
nadvornik
parents: 831
diff changeset
2256 else
a14d7da2736d iconlist_refresh optimization
nadvornik
parents: 831
diff changeset
2257 new_iconlist = g_list_prepend(new_iconlist, id); /* it is faster to append all new entries together later */
a14d7da2736d iconlist_refresh optimization
nadvornik
parents: 831
diff changeset
2258
810
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2259 work_fd = work_fd->next;
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2260 }
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2261
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2262 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2263
832
a14d7da2736d iconlist_refresh optimization
nadvornik
parents: 831
diff changeset
2264 if (new_iconlist)
a14d7da2736d iconlist_refresh optimization
nadvornik
parents: 831
diff changeset
2265 {
a14d7da2736d iconlist_refresh optimization
nadvornik
parents: 831
diff changeset
2266 vf->list = g_list_concat(vf->list, g_list_reverse(new_iconlist));
a14d7da2736d iconlist_refresh optimization
nadvornik
parents: 831
diff changeset
2267 }
996
4794cf5ecd8e correctly maintain selection during iconlist refresh
nadvornik
parents: 995
diff changeset
2268
4794cf5ecd8e correctly maintain selection during iconlist refresh
nadvornik
parents: 995
diff changeset
2269 VFICON(vf)->selection = g_list_reverse(VFICON(vf)->selection);
832
a14d7da2736d iconlist_refresh optimization
nadvornik
parents: 831
diff changeset
2270
810
602cec932587 optimized vficon_refresh_real
nadvornik
parents: 805
diff changeset
2271 filelist_free(new_filelist);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2272
831
b02a24ebf441 fixed iconview update after deletion of selected image
nadvornik
parents: 817
diff changeset
2273 vficon_populate(vf, TRUE, keep_position);
b02a24ebf441 fixed iconview update after deletion of selected image
nadvornik
parents: 817
diff changeset
2274
996
4794cf5ecd8e correctly maintain selection during iconlist refresh
nadvornik
parents: 995
diff changeset
2275 if (first_selected && !VFICON(vf)->selection)
811
f1ce59985518 handle deletion of selected files
nadvornik
parents: 810
diff changeset
2276 {
f1ce59985518 handle deletion of selected files
nadvornik
parents: 810
diff changeset
2277 /* all selected files disappeared */
996
4794cf5ecd8e correctly maintain selection during iconlist refresh
nadvornik
parents: 995
diff changeset
2278 vficon_select_closest(vf, first_selected);
811
f1ce59985518 handle deletion of selected files
nadvornik
parents: 810
diff changeset
2279 }
996
4794cf5ecd8e correctly maintain selection during iconlist refresh
nadvornik
parents: 995
diff changeset
2280 file_data_unref(first_selected);
4794cf5ecd8e correctly maintain selection during iconlist refresh
nadvornik
parents: 995
diff changeset
2281
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2282 /* attempt to keep focus on same icon when refreshing */
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2283 if (focus_id && g_list_find(vf->list, focus_id))
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2284 {
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2285 vficon_set_focus(vf, focus_id);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2286 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2287
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2288 return ret;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2289 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2290
1453
bc3f5c0432f6 gint -> gboolean where applicable. The end (ouf!).
zas_
parents: 1437
diff changeset
2291 gboolean vficon_refresh(ViewFile *vf)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2292 {
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2293 return vficon_refresh_real(vf, TRUE);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2294 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2295
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2296 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2297 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2298 * draw, etc.
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2299 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2300 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2301
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2302 typedef struct _ColumnData ColumnData;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2303 struct _ColumnData
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2304 {
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2305 ViewFile *vf;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2306 gint number;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2307 };
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2308
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2309 static void vficon_cell_data_cb(GtkTreeViewColumn *tree_column, GtkCellRenderer *cell,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2310 GtkTreeModel *tree_model, GtkTreeIter *iter, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2311 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2312 ColumnData *cd = data;
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2313 ViewFile *vf;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2314 GtkStyle *style;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2315 GList *list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2316 GdkColor color_fg;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2317 GdkColor color_bg;
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
2318 IconData *id;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2319
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2320 vf = cd->vf;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2321
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2322 gtk_tree_model_get(tree_model, iter, FILE_COLUMN_POINTER, &list, -1);
442
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 380
diff changeset
2323
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
2324 id = g_list_nth_data(list, cd->number);
442
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 380
diff changeset
2325
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
2326 if (id) g_assert(id->fd->magick == 0x12345678);
442
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 380
diff changeset
2327
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2328 style = gtk_widget_get_style(vf->listview);
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
2329 if (id && id->selected & SELECTION_SELECTED)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2330 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2331 memcpy(&color_fg, &style->text[GTK_STATE_SELECTED], sizeof(color_fg));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2332 memcpy(&color_bg, &style->base[GTK_STATE_SELECTED], sizeof(color_bg));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2333 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2334 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2335 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2336 memcpy(&color_fg, &style->text[GTK_STATE_NORMAL], sizeof(color_fg));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2337 memcpy(&color_bg, &style->base[GTK_STATE_NORMAL], sizeof(color_bg));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2338 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2339
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
2340 if (id && id->selected & SELECTION_PRELIGHT)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2341 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2342 #if 0
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2343 shift_color(&color_fg, -1, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2344 #endif
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2345 shift_color(&color_bg, -1, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2346 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2347
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2348 if (GQV_IS_CELL_RENDERER_ICON(cell))
442
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 380
diff changeset
2349 {
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 113
diff changeset
2350 if (id)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2351 {
1242
187e6096cc6c show symlinks in filelist
nadvornik
parents: 1238
diff changeset
2352 gchar *name_sidecars;
851
6e521e987105 show sidecars in icon view
nadvornik
parents: 845
diff changeset
2353 gchar *sidecars = NULL;
1242
187e6096cc6c show symlinks in filelist
nadvornik
parents: 1238
diff changeset
2354 gchar *link = islink(id->fd->path) ? GQ_LINK_STR : "";
851
6e521e987105 show sidecars in icon view
nadvornik
parents: 845
diff changeset
2355
6e521e987105 show sidecars in icon view
nadvornik
parents: 845
diff changeset
2356 if (id->fd->sidecar_files)
6e521e987105 show sidecars in icon view
nadvornik
parents: 845
diff changeset
2357 {
6e521e987105 show sidecars in icon view
nadvornik
parents: 845
diff changeset
2358 sidecars = file_data_sc_list_to_string(id->fd);
1242
187e6096cc6c show symlinks in filelist
nadvornik
parents: 1238
diff changeset
2359 name_sidecars = g_strdup_printf("%s%s %s", link, id->fd->name, sidecars);
187e6096cc6c show symlinks in filelist
nadvornik
parents: 1238
diff changeset
2360 }
187e6096cc6c show symlinks in filelist
nadvornik
parents: 1238
diff changeset
2361 else
187e6096cc6c show symlinks in filelist
nadvornik
parents: 1238
diff changeset
2362 {
187e6096cc6c show symlinks in filelist
nadvornik
parents: 1238
diff changeset
2363 name_sidecars = g_strdup_printf("%s%s", link, id->fd->name);
851
6e521e987105 show sidecars in icon view
nadvornik
parents: 845
diff changeset
2364 }
6e521e987105 show sidecars in icon view
nadvornik
parents: 845
diff changeset
2365
845
06929cbcd796 renamed fd->pixbuf to fd->thumb_pixbuf
nadvornik
parents: 843
diff changeset
2366 g_object_set(cell, "pixbuf", id->fd->thumb_pixbuf,
851
6e521e987105 show sidecars in icon view
nadvornik
parents: 845
diff changeset
2367 "text", name_sidecars,
966
c24a297efbef marks in iconview made clickable
nadvornik
parents: 964
diff changeset
2368 "marks", file_data_get_marks(id->fd),
852
8308d3606991 show marks in iconview
nadvornik
parents: 851
diff changeset
2369 "show_marks", vf->marks_enabled,
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2370 "cell-background-gdk", &color_bg,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2371 "cell-background-set", TRUE,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2372 "foreground-gdk", &color_fg,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2373 "foreground-set", TRUE,
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
2374 "has-focus", (VFICON(vf)->focus_id == id), NULL);
1242
187e6096cc6c show symlinks in filelist
nadvornik
parents: 1238
diff changeset
2375 g_free(sidecars);
187e6096cc6c show symlinks in filelist
nadvornik
parents: 1238
diff changeset
2376 g_free(name_sidecars);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2377 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2378 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2379 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2380 g_object_set(cell, "pixbuf", NULL,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2381 "text", NULL,
852
8308d3606991 show marks in iconview
nadvornik
parents: 851
diff changeset
2382 "show_marks", FALSE,
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2383 "cell-background-set", FALSE,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2384 "foreground-set", FALSE,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2385 "has-focus", FALSE, NULL);
442
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 380
diff changeset
2386 }
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2387 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2388 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2389
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2390 static void vficon_append_column(ViewFile *vf, gint n)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2391 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2392 ColumnData *cd;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2393 GtkTreeViewColumn *column;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2394 GtkCellRenderer *renderer;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2395
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2396 column = gtk_tree_view_column_new();
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2397 gtk_tree_view_column_set_min_width(column, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2398
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2399 gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_FIXED);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2400 gtk_tree_view_column_set_alignment(column, 0.5);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2401
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2402 renderer = gqv_cell_renderer_icon_new();
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2403 gtk_tree_view_column_pack_start(column, renderer, FALSE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2404 g_object_set(G_OBJECT(renderer), "xpad", THUMB_BORDER_PADDING * 2,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2405 "ypad", THUMB_BORDER_PADDING,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2406 "mode", GTK_CELL_RENDERER_MODE_ACTIVATABLE, NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2407
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2408 g_object_set_data(G_OBJECT(column), "column_number", GINT_TO_POINTER(n));
966
c24a297efbef marks in iconview made clickable
nadvornik
parents: 964
diff changeset
2409 g_object_set_data(G_OBJECT(renderer), "column_number", GINT_TO_POINTER(n));
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2410
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2411 cd = g_new0(ColumnData, 1);
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2412 cd->vf = vf;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2413 cd->number = n;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2414 gtk_tree_view_column_set_cell_data_func(column, renderer, vficon_cell_data_cb, cd, g_free);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2415
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2416 gtk_tree_view_append_column(GTK_TREE_VIEW(vf->listview), column);
966
c24a297efbef marks in iconview made clickable
nadvornik
parents: 964
diff changeset
2417
c24a297efbef marks in iconview made clickable
nadvornik
parents: 964
diff changeset
2418 g_signal_connect(G_OBJECT(renderer), "toggled", G_CALLBACK(vficon_mark_toggled_cb), vf);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2419 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2420
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2421 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2422 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2423 * base
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2424 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2425 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2426
1453
bc3f5c0432f6 gint -> gboolean where applicable. The end (ouf!).
zas_
parents: 1437
diff changeset
2427 gboolean vficon_set_fd(ViewFile *vf, FileData *dir_fd)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2428 {
1453
bc3f5c0432f6 gint -> gboolean where applicable. The end (ouf!).
zas_
parents: 1437
diff changeset
2429 gboolean ret;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2430
783
d6a7fb4b8e7c replaced directory path with FileData* dir_fd
nadvornik
parents: 763
diff changeset
2431 if (!dir_fd) return FALSE;
d6a7fb4b8e7c replaced directory path with FileData* dir_fd
nadvornik
parents: 763
diff changeset
2432 if (vf->dir_fd == dir_fd) return TRUE;
d6a7fb4b8e7c replaced directory path with FileData* dir_fd
nadvornik
parents: 763
diff changeset
2433
d6a7fb4b8e7c replaced directory path with FileData* dir_fd
nadvornik
parents: 763
diff changeset
2434 file_data_unref(vf->dir_fd);
d6a7fb4b8e7c replaced directory path with FileData* dir_fd
nadvornik
parents: 763
diff changeset
2435 vf->dir_fd = file_data_ref(dir_fd);
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2436
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
2437 g_list_free(VFICON(vf)->selection);
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
2438 VFICON(vf)->selection = NULL;
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2439
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2440 iconlist_free(vf->list);
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2441 vf->list = NULL;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2442
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2443 /* NOTE: populate will clear the store for us */
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2444 ret = vficon_refresh_real(vf, FALSE);
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2445
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
2446 VFICON(vf)->focus_id = NULL;
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2447 vficon_move_focus(vf, 0, 0, FALSE);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2448
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2449 return ret;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2450 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2451
573
2996f1bbc305 Drop ViewFileList, use ViewFile and ViewFileInfoList instead.
zas_
parents: 562
diff changeset
2452 void vficon_destroy_cb(GtkWidget *widget, gpointer data)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2453 {
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2454 ViewFile *vf = data;
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2455
814
721c2bbaceec moved notification to view_file.c
nadvornik
parents: 812
diff changeset
2456 vf_refresh_idle_cancel(vf);
787
a2209b1f769d use new notification in vficon
nadvornik
parents: 783
diff changeset
2457
814
721c2bbaceec moved notification to view_file.c
nadvornik
parents: 812
diff changeset
2458 file_data_unregister_notify_func(vf_notify_cb, vf);
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2459
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2460 tip_unschedule(vf);
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2461
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2462 vficon_thumb_cleanup(vf);
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2463
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2464 iconlist_free(vf->list);
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
2465 g_list_free(VFICON(vf)->selection);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2466 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2467
783
d6a7fb4b8e7c replaced directory path with FileData* dir_fd
nadvornik
parents: 763
diff changeset
2468 ViewFile *vficon_new(ViewFile *vf, FileData *dir_fd)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2469 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2470 GtkListStore *store;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2471 GtkTreeSelection *selection;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2472 gint i;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2473
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2474 vf->info = g_new0(ViewFileInfoIcon, 1);
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2475
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
2476 VFICON(vf)->tip_delay_id = -1;
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
2477 VFICON(vf)->show_text = options->show_icon_names;
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2478
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2479 store = gtk_list_store_new(1, G_TYPE_POINTER);
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2480 vf->listview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store));
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2481 g_object_unref(store);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2482
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2483 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(vf->listview));
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2484 gtk_tree_selection_set_mode(GTK_TREE_SELECTION(selection), GTK_SELECTION_NONE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2485
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2486 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(vf->listview), FALSE);
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2487 gtk_tree_view_set_enable_search(GTK_TREE_VIEW(vf->listview), FALSE);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2488
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2489 for (i = 0; i < VFICON_MAX_COLUMNS; i++)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2490 {
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2491 vficon_append_column(vf, i);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2492 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2493
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2494 /* zero width column to hide tree view focus, we draw it ourselves */
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2495 vficon_append_column(vf, i);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2496 /* end column to fill white space */
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2497 vficon_append_column(vf, i);
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2498
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2499 g_signal_connect(G_OBJECT(vf->listview), "size_allocate",
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2500 G_CALLBACK(vficon_sized_cb), vf);
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2501
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2502 gtk_widget_set_events(vf->listview, GDK_POINTER_MOTION_MASK | GDK_BUTTON_RELEASE_MASK |
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2503 GDK_BUTTON_PRESS_MASK | GDK_LEAVE_NOTIFY_MASK);
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2504
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2505 g_signal_connect(G_OBJECT(vf->listview),"motion_notify_event",
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2506 G_CALLBACK(vficon_motion_cb), vf);
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2507 g_signal_connect(G_OBJECT(vf->listview), "leave_notify_event",
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2508 G_CALLBACK(vficon_leave_cb), vf);
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2509
968
065a129fd42b Simplify things related to ViewFileInfoList * and ViewFileInfoIcon * type casting:
zas_
parents: 967
diff changeset
2510 /* force VFICON(vf)->columns to be at least 1 (sane) - this will be corrected in the size_cb */
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2511 vficon_populate_at_new_size(vf, 1, 1, FALSE);
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2512
814
721c2bbaceec moved notification to view_file.c
nadvornik
parents: 812
diff changeset
2513 file_data_register_notify_func(vf_notify_cb, vf, NOTIFY_PRIORITY_MEDIUM);
787
a2209b1f769d use new notification in vficon
nadvornik
parents: 783
diff changeset
2514
574
3da75054d4e1 Drop ViewFileIcon, use ViewFile and ViewFileInfoIcon instead.
zas_
parents: 573
diff changeset
2515 return vf;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2516 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2517
1055
1646720364cf Adding a vim modeline to all files - patch by Klaus Ethgen
nadvornik
parents: 1005
diff changeset
2518 /* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */