annotate src/view_file_icon.c @ 1291:50ae02a4a675

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