3505
|
1 |
--- ristretto-0.0.93/src/main.c 2011-02-28 13:45:44.000000000 -0500
|
|
2 |
+++ ristretto-0.0.93/src/main.c 2011-06-09 01:55:15.806743500 -0400
|
|
3 |
@@ -143,6 +143,7 @@
|
|
4 |
static gboolean
|
|
5 |
cb_rstto_open_files (RsttoOpenFiles *rof)
|
|
6 |
{
|
|
7 |
+ GFileType file_type;
|
|
8 |
GFile *file, *p_file, *child_file;
|
|
9 |
GFileInfo *file_info;
|
|
10 |
const gchar *content_type, *filename;
|
|
11 |
@@ -156,7 +157,15 @@
|
|
12 |
file = g_file_new_for_commandline_arg (rof->argv[rof->iter]);
|
|
13 |
if (file)
|
|
14 |
{
|
|
15 |
- file_info = g_file_query_info (file, "standard::content-type", 0, NULL, NULL);
|
|
16 |
+ if (rof->open_entire_folder)
|
|
17 |
+ {
|
|
18 |
+ file_info = g_file_query_info (file, "standard::content-type,standard::type", 0, NULL, NULL);
|
|
19 |
+ }
|
|
20 |
+ else
|
|
21 |
+ {
|
|
22 |
+ file_info = g_file_query_info (file, "standard::content-type", 0, NULL, NULL);
|
|
23 |
+ }
|
|
24 |
+
|
|
25 |
if (file_info)
|
|
26 |
{
|
|
27 |
content_type = g_file_info_get_attribute_string (file_info, "standard::content-type");
|
|
28 |
@@ -165,6 +174,29 @@
|
|
29 |
{
|
|
30 |
rstto_image_list_add_file (rof->image_list, file, NULL);
|
|
31 |
}
|
|
32 |
+
|
|
33 |
+ if (rof->open_entire_folder)
|
|
34 |
+ {
|
|
35 |
+ file_type = g_file_info_get_file_type(file_info);
|
|
36 |
+ if (file_type == G_FILE_TYPE_DIRECTORY)
|
|
37 |
+ {
|
|
38 |
+ file_enumarator = g_file_enumerate_children (file, "standard::*", 0, NULL, NULL);
|
|
39 |
+ for(file_info = g_file_enumerator_next_file (file_enumarator, NULL, NULL); file_info != NULL; file_info = g_file_enumerator_next_file (file_enumarator, NULL, NULL))
|
|
40 |
+ {
|
|
41 |
+ filename = g_file_info_get_name (file_info);
|
|
42 |
+ content_type = g_file_info_get_content_type (file_info);
|
|
43 |
+ child_file = g_file_get_child (file, filename);
|
|
44 |
+
|
|
45 |
+ if (strncmp (content_type, "image/", 6) == 0)
|
|
46 |
+ {
|
|
47 |
+ rstto_image_list_add_file (rof->image_list, child_file, NULL);
|
|
48 |
+ }
|
|
49 |
+
|
|
50 |
+ g_object_unref (child_file);
|
|
51 |
+ g_object_unref (file_info);
|
|
52 |
+ }
|
|
53 |
+ }
|
|
54 |
+ }
|
|
55 |
}
|
|
56 |
}
|
|
57 |
rof->iter++;
|
|
58 |
@@ -176,10 +208,11 @@
|
|
59 |
file = g_file_new_for_commandline_arg (rof->argv[rof->iter]);
|
|
60 |
if (file)
|
|
61 |
{
|
|
62 |
- file_info = g_file_query_info (file, "standard::content-type", 0, NULL, NULL);
|
|
63 |
+ file_info = g_file_query_info (file, "standard::content-type,standard::type", 0, NULL, NULL);
|
|
64 |
if (file_info)
|
|
65 |
{
|
|
66 |
content_type = g_file_info_get_attribute_string (file_info, "standard::content-type");
|
|
67 |
+ file_type = g_file_info_get_file_type (file_info);
|
|
68 |
|
|
69 |
if (strncmp (content_type, "image/", 6) == 0)
|
|
70 |
{
|
|
71 |
@@ -187,7 +220,13 @@
|
|
72 |
}
|
|
73 |
}
|
|
74 |
}
|
|
75 |
- p_file = g_file_get_parent (file);
|
|
76 |
+ if (file_type != G_FILE_TYPE_DIRECTORY) {
|
|
77 |
+ p_file = g_file_get_parent (file);
|
|
78 |
+ }
|
|
79 |
+ else
|
|
80 |
+ {
|
|
81 |
+ p_file = file;
|
|
82 |
+ }
|
|
83 |
file_enumarator = g_file_enumerate_children (p_file, "standard::*", 0, NULL, NULL);
|
|
84 |
for(file_info = g_file_enumerator_next_file (file_enumarator, NULL, NULL); file_info != NULL; file_info = g_file_enumerator_next_file (file_enumarator, NULL, NULL))
|
|
85 |
{
|
|
86 |
@@ -206,3 +245,5 @@
|
|
87 |
}
|
|
88 |
return FALSE;
|
|
89 |
}
|
|
90 |
+
|
|
91 |
+
|