annotate src/view_file_icon.c @ 1453:bc3f5c0432f6

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