Mercurial > geeqie
comparison src/dupe.h @ 9:d907d608745f
Sync to GQview 1.5.9 release.
########
DO NOT BASE ENHANCEMENTS OR TRANSLATION UPDATES ON CODE IN THIS CVS!
This CVS is never up to date with current development and is provided
solely for reference purposes, please use the latest official release
package when making any changes or translation updates.
########
author | gqview |
---|---|
date | Sat, 26 Feb 2005 00:13:35 +0000 |
parents | |
children | 71e1ebee420e |
comparison
equal
deleted
inserted
replaced
8:e0d0593d519e | 9:d907d608745f |
---|---|
1 /* | |
2 * GQview | |
3 * (C) 2004 John Ellis | |
4 * | |
5 * Author: John Ellis | |
6 * | |
7 * This software is released under the GNU General Public License (GNU GPL). | |
8 * Please read the included file COPYING for more information. | |
9 * This software comes with no warranty of any kind, use at your own risk! | |
10 */ | |
11 | |
12 | |
13 #ifndef DUPE_H | |
14 #define DUPE_H | |
15 | |
16 #include "similar.h" | |
17 | |
18 /* match methods */ | |
19 typedef enum | |
20 { | |
21 DUPE_MATCH_NONE = 0, | |
22 DUPE_MATCH_NAME = 1 << 0, | |
23 DUPE_MATCH_SIZE = 1 << 1, | |
24 DUPE_MATCH_DATE = 1 << 2, | |
25 DUPE_MATCH_DIM = 1 << 3, /* image dimensions */ | |
26 DUPE_MATCH_SUM = 1 << 4, /* simple checksum */ | |
27 DUPE_MATCH_PATH = 1 << 5, | |
28 DUPE_MATCH_SIM_HIGH = 1 << 6, /* similarity */ | |
29 DUPE_MATCH_SIM_MED = 1 << 7, | |
30 DUPE_MATCH_SIM_LOW = 1 << 8, | |
31 DUPE_MATCH_SIM_CUSTOM = 1 << 9 | |
32 } DupeMatchType; | |
33 | |
34 typedef struct _DupeItem DupeItem; | |
35 struct _DupeItem | |
36 { | |
37 CollectionData *collection; /* NULL if from DupeWindow->files */ | |
38 CollectInfo *info; | |
39 | |
40 gchar *path; | |
41 const gchar *name; /* we store the pointer into path for the name, | |
42 * so that we only need to calculate this once, | |
43 * which significantly speeds up comparing names */ | |
44 gint64 size; | |
45 time_t date; | |
46 | |
47 long checksum; | |
48 gchar *md5sum; | |
49 gint width; | |
50 gint height; | |
51 | |
52 ImageSimilarityData *simd; | |
53 | |
54 /* thumb */ | |
55 GdkPixbuf *pixbuf; | |
56 | |
57 GList *group; /* List of match data */ | |
58 gdouble group_rank; | |
59 | |
60 gint second; | |
61 }; | |
62 | |
63 typedef struct _DupeMatch DupeMatch; | |
64 struct _DupeMatch | |
65 { | |
66 DupeItem *di; | |
67 gdouble rank; | |
68 }; | |
69 | |
70 typedef struct _DupeWindow DupeWindow; | |
71 struct _DupeWindow | |
72 { | |
73 GList *list; /* dropped files (DupeItem) */ | |
74 GList *dupes; /* list of dupes (DupeItem, grouping the DupeMatches) */ | |
75 DupeMatchType match_mask; /* mask of things to check for match */ | |
76 | |
77 GtkWidget *window; | |
78 GtkWidget *table; | |
79 GtkWidget *listview; | |
80 GtkWidget *combo; | |
81 GtkWidget *status_label; | |
82 GtkWidget *extra_label; | |
83 GtkWidget *button_thumbs; | |
84 | |
85 gint show_thumbs; | |
86 | |
87 gint idle_id; | |
88 GList *working; | |
89 gint setup_done; | |
90 gint setup_count; | |
91 gint setup_n; /* these are merely for speed optimization */ | |
92 GList *setup_point; /* ditto */ | |
93 DupeMatchType setup_mask; /* ditto */ | |
94 guint64 setup_time; | |
95 guint64 setup_time_count; | |
96 | |
97 DupeItem *click_item; /* for popup menu */ | |
98 | |
99 ThumbLoader *thumb_loader; | |
100 DupeItem *thumb_item; | |
101 | |
102 ImageLoader *img_loader; | |
103 | |
104 /* second set comparison stuff */ | |
105 | |
106 gint second_set; /* second set enabled ? */ | |
107 GList *second_list; /* second set dropped files */ | |
108 gint second_drop; /* drop is on second set */ | |
109 | |
110 GtkWidget *second_vbox; /* box of second widgets */ | |
111 GtkWidget *second_listview; | |
112 GtkWidget *second_status_label; | |
113 | |
114 gint color_frozen; | |
115 }; | |
116 | |
117 | |
118 DupeWindow *dupe_window_new(DupeMatchType match_mask); | |
119 | |
120 void dupe_window_clear(DupeWindow *dw); | |
121 void dupe_window_close(DupeWindow *dw); | |
122 | |
123 void dupe_window_add_collection(DupeWindow *dw, CollectionData *collection); | |
124 void dupe_window_add_files(DupeWindow *dw, GList *list, gint recurse); | |
125 | |
126 void dupe_maint_removed(const gchar *path); | |
127 void dupe_maint_renamed(const gchar *source, const gchar *dest); | |
128 | |
129 | |
130 /* cell max with/height hack utility */ | |
131 void cell_renderer_height_override(GtkCellRenderer *renderer); | |
132 | |
133 | |
134 #endif | |
135 | |
136 |