diff --git a/data/icons/application/default.db b/data/icons/application/default.db new file mode 100644 index 000000000..255fc4dc6 Binary files /dev/null and b/data/icons/application/default.db differ diff --git a/data/icons/application/gnu-zip-unix.db b/data/icons/application/gnu-zip-unix.db new file mode 100644 index 000000000..636960488 Binary files /dev/null and b/data/icons/application/gnu-zip-unix.db differ diff --git a/data/icons/document/postscript.db b/data/icons/document/postscript.db new file mode 100644 index 000000000..b33890874 Binary files /dev/null and b/data/icons/document/postscript.db differ diff --git a/data/icons/document/unknown.db b/data/icons/document/unknown.db index 255fc4dc6..ea0310962 100644 Binary files a/data/icons/document/unknown.db and b/data/icons/document/unknown.db differ diff --git a/data/icons/ext2/default.db b/data/icons/ext2/default.db index 50ee2cef9..b99e09608 100644 Binary files a/data/icons/ext2/default.db and b/data/icons/ext2/default.db differ diff --git a/data/icons/image/default.db b/data/icons/image/default.db new file mode 100644 index 000000000..255fc4dc6 Binary files /dev/null and b/data/icons/image/default.db differ diff --git a/data/icons/image/gif.db b/data/icons/image/gif.db new file mode 100644 index 000000000..759e525ef Binary files /dev/null and b/data/icons/image/gif.db differ diff --git a/data/icons/image/jpeg-jfif-standard.db b/data/icons/image/jpeg-jfif-standard.db new file mode 100644 index 000000000..399e8d99f Binary files /dev/null and b/data/icons/image/jpeg-jfif-standard.db differ diff --git a/data/icons/image/jpeg.db b/data/icons/image/jpeg.db new file mode 100644 index 000000000..399e8d99f Binary files /dev/null and b/data/icons/image/jpeg.db differ diff --git a/data/icons/image/png.db b/data/icons/image/png.db new file mode 100644 index 000000000..a855598d2 Binary files /dev/null and b/data/icons/image/png.db differ diff --git a/data/icons/image/xpm.db b/data/icons/image/xpm.db new file mode 100644 index 000000000..5e1496fee Binary files /dev/null and b/data/icons/image/xpm.db differ diff --git a/data/icons/text/default.db b/data/icons/text/default.db new file mode 100644 index 000000000..255fc4dc6 Binary files /dev/null and b/data/icons/text/default.db differ diff --git a/data/icons/text/plain.db b/data/icons/text/plain.db new file mode 100644 index 000000000..e1f560cc8 Binary files /dev/null and b/data/icons/text/plain.db differ diff --git a/src/fs.c b/src/fs.c index 8bd79b575..70846b3c6 100644 --- a/src/fs.c +++ b/src/fs.c @@ -10,7 +10,7 @@ _e_fs_fd_handle(int fd) { double start, current; - printf("############## fs event...\n"); +/* printf("############## fs event...\n"); */ start = e_get_time(); while ((ec) && efsd_events_pending(ec)) { @@ -47,7 +47,7 @@ _e_fs_fd_handle(int fd) break; } } - printf("############## fs done\n"); +/* printf("############## fs done\n"); */ } void diff --git a/src/icons.c b/src/icons.c index c4ed447a8..59e8e16ce 100644 --- a/src/icons.c +++ b/src/icons.c @@ -75,7 +75,7 @@ e_icon_new(void) icon = NEW(E_Icon, 1); ZERO(icon, E_Icon, 1); OBJ_INIT(icon, e_icon_free); - icon->info.icon.normal = strdup(PACKAGE_DATA_DIR"/data/icons/file/default.db:/icon/normal"); + icon->info.icon.normal = strdup(PACKAGE_DATA_DIR"/data/icons/unknown/default.db:/icon/normal"); icon->previous.state.clicked = -1; return icon; } diff --git a/src/view.c b/src/view.c index 9bde051c9..73b08f4bf 100644 --- a/src/view.c +++ b/src/view.c @@ -422,30 +422,17 @@ e_view_file_added(int id, char *file) /* char buf[4096]; */ /* if we get a path - ignore it - its not a file in the a dir */ - printf("e_view_file_added(%i, \"%s\");\n", id, file); if (!file) return; if (file[0] == '/') return; v = e_view_find_by_monitor_id(id); if (!v) return; /* filter files here */ if (!e_view_filter_file(v, file)) return; + printf("e_view_file_added(%i, \"%s\");\n", id, file); icon = e_icon_new(); e_icon_set_filename(icon, file); e_view_add_icon(v, icon); - /* - sprintf(buf, "%s/%s", v->dir, file); - if (efsd_ready(e_fs_get_connection())) - { - printf("Stating %s\n", buf); - efsd_stat(e_fs_get_connection(), buf); - } - else - { - printf("*********** EEEEEEEEEEEEEEEEEK Efsd not ready.\n"); - } - */ - v->changed = 1; } @@ -456,11 +443,14 @@ e_view_file_deleted(int id, char *file) E_View *v; /* char *realfile; */ - printf("e_view_file_deleted(%i, \"%s\");\n", id, file); v = e_view_find_by_monitor_id(id); if (!v) return; icon = e_view_find_icon_by_file(v, file); - if (icon) e_view_del_icon(v, icon); + if (icon) + { + e_view_del_icon(v, icon); + printf("e_view_file_deleted(%i, \"%s\");\n", id, file); + } } E_Icon * @@ -536,15 +526,15 @@ e_view_handle_fs(EfsdEvent *ev) ev->efsd_filechange_event.file); break; case EFSD_CHANGE_CHANGED: - printf("EFSD_CHANGE_CHANGED: %i %s\n", +/* printf("EFSD_CHANGE_CHANGED: %i %s\n", ev->efsd_filechange_event.id, ev->efsd_filechange_event.file); - break; +*/ break; case EFSD_CHANGE_MOVED: - printf("EFSD_CHANGE_MOVED: %i %s\n", +/* printf("EFSD_CHANGE_MOVED: %i %s\n", ev->efsd_filechange_event.id, ev->efsd_filechange_event.file); - break; +*/ break; case EFSD_CHANGE_END_EXISTS: printf("EFSD_CHANGE_END_EXISTS: %i %s\n", ev->efsd_filechange_event.id, @@ -569,16 +559,83 @@ e_view_handle_fs(EfsdEvent *ev) break; case EFSD_CMD_CHMOD: break; + case EFSD_CMD_GETMIME: +/* printf("Getmime event %i\n", + ev->efsd_reply_event.command.efsd_file_cmd.id); +*/ if (ev->efsd_reply_event.status == SUCCESS) + { + E_Icon *icon; + + icon = e_view_find_icon_by_path(ev->efsd_reply_event.command.efsd_file_cmd.file); + if (icon) + { + char m1[4096], m2[4096], *p; + + /* figure out icons to use */ + strcpy(m1, (char*)ev->efsd_reply_event.data); + p = strchr(m1, '/'); + if (p) *p = 0; + p = strchr((char*)ev->efsd_reply_event.data, '/'); + if (p) strcpy(m2, &(p[1])); + else m2[0] = 0; + icon->info.mime.base = strdup(m1); + icon->info.mime.type = strdup(m2); + + printf("%s: %s/%s\n", icon->file, icon->info.mime.base, icon->info.mime.type); + sprintf(m1, "%s/data/icons/%s/%s.db",PACKAGE_DATA_DIR, + icon->info.mime.base, + icon->info.mime.type); + if (!e_file_exists(m1)) + { + printf("fallback 1\n"); + sprintf(m1, "%s/data/icons/%s/default.db",PACKAGE_DATA_DIR, + icon->info.mime.base); + if (!e_file_exists(m1)) + { + printf("fallback 2\n"); + sprintf(m1, "%s/data/icons/unknown/unknown.db",PACKAGE_DATA_DIR); + if (!e_file_exists(m1)) + { + printf("fallback 3\n"); + sprintf(m1, "%s/data/icons/unknown/default.db",PACKAGE_DATA_DIR); + } + } + } + IF_FREE(icon->info.icon.normal); + IF_FREE(icon->info.icon.selected); + IF_FREE(icon->info.icon.clicked); + sprintf(m2, "%s:/icon/normal", m1); + icon->info.icon.normal = strdup(m2); + sprintf(m2, "%s:/icon/selected", m1); + icon->info.icon.selected = strdup(m2); + sprintf(m2, "%s:/icon/clicked", m1); + icon->info.icon.clicked = strdup(m2); + if (icon->info.link) + { +/* icon->info.icon.normal = strdup(PACKAGE_DATA_DIR"/data/icons/file/default.db:/icon/normal"); + icon->info.icon.selected = strdup(PACKAGE_DATA_DIR"/data/icons/file/default.db:/icon/selected"); + icon->info.icon.clicked = strdup(PACKAGE_DATA_DIR"/data/icons/file/default.db:/icon/clicked"); +*/ } + e_icon_pre_show(icon); + } + } + break; case EFSD_CMD_STAT: - printf("Stat event %i stating file %s\n", +/* printf("Stat event %i stating file %s\n", ev->efsd_reply_event.command.efsd_file_cmd.id, ev->efsd_reply_event.command.efsd_file_cmd.file); - { +*/ { struct stat *st; E_Icon *icon; st = (struct stat*) ev->efsd_reply_event.data; + icon = e_view_find_icon_by_path(ev->efsd_reply_event.command.efsd_file_cmd.file); + if (icon) + { + char f[4096]; + +/* if (S_ISREG(st->st_mode)) printf("%s is a regular file.\n", ev->efsd_reply_event.command.efsd_file_cmd.file); @@ -588,12 +645,7 @@ e_view_handle_fs(EfsdEvent *ev) if (S_ISDIR(st->st_mode)) printf("%s is a directory.\n", ev->efsd_reply_event.command.efsd_file_cmd.file); - icon = e_view_find_icon_by_path(ev->efsd_reply_event.command.efsd_file_cmd.file); - if (icon) - { - char f[4096]; - - sprintf(f, "%s/%s", icon->view->dir, icon->file); +*/ sprintf(f, "%s/%s", icon->view->dir, icon->file); /* should get mime type here */ /* perhaps this flag should be part of the mime? */ if (S_ISDIR(st->st_mode)) icon->info.is_dir = 1; @@ -604,44 +656,14 @@ e_view_handle_fs(EfsdEvent *ev) efsd_readlink(e_fs_get_connection(), f); } icon->info.is_exe = e_file_can_exec(st); - /* figure out icons to use */ - IF_FREE(icon->info.icon.normal); - IF_FREE(icon->info.icon.selected); - IF_FREE(icon->info.icon.clicked); - if (icon->info.is_dir) - { - icon->info.icon.normal = strdup(PACKAGE_DATA_DIR"/data/icons/directory/default.db:/icon/normal"); - icon->info.icon.selected = strdup(PACKAGE_DATA_DIR"/data/icons/directory/default.db:/icon/selected"); - icon->info.icon.clicked = strdup(PACKAGE_DATA_DIR"/data/icons/directory/default.db:/icon/clicked"); - } - else if (icon->info.link) - { - icon->info.icon.normal = strdup(PACKAGE_DATA_DIR"/data/icons/file/default.db:/icon/normal"); - icon->info.icon.selected = strdup(PACKAGE_DATA_DIR"/data/icons/file/default.db:/icon/selected"); - icon->info.icon.clicked = strdup(PACKAGE_DATA_DIR"/data/icons/file/default.db:/icon/clicked"); - } - else if (icon->info.is_exe) - { - icon->info.icon.normal = strdup(PACKAGE_DATA_DIR"/data/icons/executable/default.db:/icon/normal"); - icon->info.icon.selected = strdup(PACKAGE_DATA_DIR"/data/icons/executable/default.db:/icon/selected"); - icon->info.icon.clicked = strdup(PACKAGE_DATA_DIR"/data/icons/executable/default.db:/icon/clicked"); - } - else - { - icon->info.icon.normal = strdup(PACKAGE_DATA_DIR"/data/icons/file/default.db:/icon/normal"); - icon->info.icon.selected = strdup(PACKAGE_DATA_DIR"/data/icons/file/default.db:/icon/selected"); - icon->info.icon.clicked = strdup(PACKAGE_DATA_DIR"/data/icons/file/default.db:/icon/clicked"); - } icon->changed = 1; icon->view->changed = 1; - if (!icon->info.link_get_id) - e_icon_pre_show(icon); +/* if (!icon->info.link_get_id) + e_icon_pre_show(icon);*/ } } break; case EFSD_CMD_READLINK: - printf("Readlink event %i\n", - ev->efsd_reply_event.command.efsd_file_cmd.id); if (ev->efsd_reply_event.status == SUCCESS) { Evas_List l; @@ -779,7 +801,8 @@ e_view_set_dir(E_View *v, char *dir) /* v->monitor_id = efsd_start_monitor(e_fs_get_connection(), v->dir); */ v->monitor_id = efsd_start_monitor(e_fs_get_connection(), v->dir, - 1, efsd_op_get_stat()); + 2, efsd_op_get_stat(), + efsd_op_get_mimetype()); v->is_listing = 1; v->changed = 1; }