summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/filetypes.c23
-rw-r--r--apps/gui/icon.c8
-rw-r--r--apps/plugins/viewers.config2
3 files changed, 28 insertions, 5 deletions
diff --git a/apps/filetypes.c b/apps/filetypes.c
index f91df19652..cb05a60ad6 100644
--- a/apps/filetypes.c
+++ b/apps/filetypes.c
@@ -75,12 +75,33 @@ static char *filetypes_strdup(char* string)
75static void read_builtin_types(void); 75static void read_builtin_types(void);
76static void read_config(char* config_file); 76static void read_config(char* config_file);
77#ifdef HAVE_LCD_BITMAP 77#ifdef HAVE_LCD_BITMAP
78
79static void reset_icons(void)
80{
81 int i, j, count;
82 const struct filetype *types;
83 tree_get_filetypes(&types, &count);
84 for (i=1; i<filetype_count; i++) /* 0 is folders */
85 {
86 filetypes[i].icon = Icon_Questionmark;
87 for (j=0; j<count; j++)
88 {
89 if (filetypes[i].extension &&
90 !strcmp(filetypes[i].extension, types[j].extension))
91 {
92 filetypes[i].icon = types[j].icon;
93 break;
94 }
95 }
96 }
97}
78void read_viewer_theme_file(void) 98void read_viewer_theme_file(void)
79{ 99{
80 char buffer[MAX_PATH]; 100 char buffer[MAX_PATH];
81 int fd; 101 int fd;
82 char *ext, *icon; 102 char *ext, *icon;
83 int i; 103 int i;
104 reset_icons();
84 snprintf(buffer, MAX_PATH, "%s/%s.icons", ICON_DIR, 105 snprintf(buffer, MAX_PATH, "%s/%s.icons", ICON_DIR,
85 global_settings.viewers_icon_file); 106 global_settings.viewers_icon_file);
86 fd = open(buffer, O_RDONLY); 107 fd = open(buffer, O_RDONLY);
@@ -265,6 +286,8 @@ char* filetype_get_plugin(const struct entry* file)
265 int index = find_attr(file->attr); 286 int index = find_attr(file->attr);
266 if (index < 0) 287 if (index < 0)
267 return NULL; 288 return NULL;
289 if (filetypes[index].viewer == NULL)
290 return NULL;
268 snprintf(plugin_name, MAX_PATH, "%s/%s.%s", 291 snprintf(plugin_name, MAX_PATH, "%s/%s.%s",
269 filetypes[index].viewer? VIEWERS_DIR: PLUGIN_DIR, 292 filetypes[index].viewer? VIEWERS_DIR: PLUGIN_DIR,
270 filetypes[index].plugin, ROCK_EXTENSION); 293 filetypes[index].plugin, ROCK_EXTENSION);
diff --git a/apps/gui/icon.c b/apps/gui/icon.c
index 2cb0035ad7..b283ec2c80 100644
--- a/apps/gui/icon.c
+++ b/apps/gui/icon.c
@@ -42,7 +42,7 @@
42#define DEFAULT_VIEWER_BMP ICON_DIR "/viewers.bmp" 42#define DEFAULT_VIEWER_BMP ICON_DIR "/viewers.bmp"
43#define DEFAULT_REMOTE_VIEWER_BMP ICON_DIR "/remote_viewers.bmp" 43#define DEFAULT_REMOTE_VIEWER_BMP ICON_DIR "/remote_viewers.bmp"
44 44
45/* These should robably be moved to config-<target>.h */ 45/* These should probably be moved to config-<target>.h */
46#define MAX_ICON_HEIGHT 24 46#define MAX_ICON_HEIGHT 24
47#define MAX_ICON_WIDTH 24 47#define MAX_ICON_WIDTH 24
48 48
@@ -213,9 +213,9 @@ static void load_icons(const char* filename, enum Iconset iconset)
213 break; 213 break;
214#ifdef HAVE_REMOTE_LCD 214#ifdef HAVE_REMOTE_LCD
215 case Iconset_Remotescreen: 215 case Iconset_Remotescreen:
216 loaded_ok = &custom_icons_loaded[SCREEN_MAIN]; 216 loaded_ok = &custom_icons_loaded[SCREEN_REMOTE];
217 bmp = &user_iconset[SCREEN_MAIN]; 217 bmp = &user_iconset[SCREEN_REMOTE];
218 bmp->data = icon_buffer[SCREEN_MAIN]; 218 bmp->data = icon_buffer[SCREEN_REMOTE];
219 break; 219 break;
220 case Iconset_Remotescreen_viewers: 220 case Iconset_Remotescreen_viewers:
221 loaded_ok = &viewer_icons_loaded[SCREEN_REMOTE]; 221 loaded_ok = &viewer_icons_loaded[SCREEN_REMOTE];
diff --git a/apps/plugins/viewers.config b/apps/plugins/viewers.config
index d53fb2371e..4abdfb106f 100644
--- a/apps/plugins/viewers.config
+++ b/apps/plugins/viewers.config
@@ -19,7 +19,7 @@ rsp,viewers/searchengine,8
19ss,rocks/sudoku,1 19ss,rocks/sudoku,1
20wav,viewers/wav2wv,- 20wav,viewers/wav2wv,-
21wav,viewers/mp3_encoder,- 21wav,viewers/mp3_encoder,-
22wav,viewers/wavplay,*0 22wav,viewers/wavplay,10
23wav,viewers/wavview,10 23wav,viewers/wavview,10
24bmp,rocks/rockpaint,11 24bmp,rocks/rockpaint,11
25mpg,viewers/mpegplayer,4 25mpg,viewers/mpegplayer,4