From 6cf7cb9822782295091fb083eab1f2862500b53b Mon Sep 17 00:00:00 2001 From: Jonathan Gordon Date: Sun, 27 Nov 2011 10:10:26 +0000 Subject: [PATCH] Don't load the icons unless show_icons is actually enabled. And respect that setting in the shortcuts menu git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31069 a1c6a512-1295-4272-9138-f99709370657 --- apps/gui/icon.c | 55 ++++++++++++++++++++++------------------- apps/menus/theme_menu.c | 21 +++++++++++++++- apps/shortcuts.c | 3 ++- 3 files changed, 51 insertions(+), 28 deletions(-) diff --git a/apps/gui/icon.c b/apps/gui/icon.c index a9075b1b0f..e1f4ec31a6 100644 --- a/apps/gui/icon.c +++ b/apps/gui/icon.c @@ -236,36 +236,39 @@ void icons_init(void) } } - load_icons(global_settings.icon_file, Iconset_user, SCREEN_MAIN); - - if (global_settings.viewers_icon_file[0] && - global_settings.viewers_icon_file[0] != '-') + if (global_settings.show_icons) { - load_icons(global_settings.viewers_icon_file, - Iconset_viewers, SCREEN_MAIN); - read_viewer_theme_file(); - } - else - { - load_icons(DEFAULT_VIEWER_BMP, Iconset_viewers, SCREEN_MAIN); - } + load_icons(global_settings.icon_file, Iconset_user, SCREEN_MAIN); + + if (global_settings.viewers_icon_file[0] && + global_settings.viewers_icon_file[0] != '-') + { + load_icons(global_settings.viewers_icon_file, + Iconset_viewers, SCREEN_MAIN); + read_viewer_theme_file(); + } + else + { + load_icons(DEFAULT_VIEWER_BMP, Iconset_viewers, SCREEN_MAIN); + } #if defined(HAVE_REMOTE_LCD) && (NB_SCREENS > 1) - load_icons(global_settings.remote_icon_file, - Iconset_user, SCREEN_REMOTE); - - if (global_settings.remote_viewers_icon_file[0] && - global_settings.remote_viewers_icon_file[0] != '-') - { - load_icons(global_settings.remote_viewers_icon_file, - Iconset_viewers, SCREEN_REMOTE); - } - else - { - load_icons(DEFAULT_REMOTE_VIEWER_BMP, - Iconset_viewers, SCREEN_REMOTE); - } + load_icons(global_settings.remote_icon_file, + Iconset_user, SCREEN_REMOTE); + + if (global_settings.remote_viewers_icon_file[0] && + global_settings.remote_viewers_icon_file[0] != '-') + { + load_icons(global_settings.remote_viewers_icon_file, + Iconset_viewers, SCREEN_REMOTE); + } + else + { + load_icons(DEFAULT_REMOTE_VIEWER_BMP, + Iconset_viewers, SCREEN_REMOTE); + } #endif + } } int get_icon_width(enum screen_type screen_type) diff --git a/apps/menus/theme_menu.c b/apps/menus/theme_menu.c index f5af1c7b78..e1077a5efd 100644 --- a/apps/menus/theme_menu.c +++ b/apps/menus/theme_menu.c @@ -39,6 +39,7 @@ #include "viewport.h" #include "statusbar-skinned.h" #include "skin_engine/skin_engine.h" +#include "icons.h" #ifdef HAVE_BACKDROP_IMAGE /** @@ -356,7 +357,25 @@ MENUITEM_FUNCTION(browse_rfms, MENU_FUNC_USEPARAM, #endif #endif -MENUITEM_SETTING(show_icons, &global_settings.show_icons, NULL); + +static int showicons_callback(int action, const struct menu_item_ex *this_item) +{ + (void)this_item; + static bool old_icons; + switch (action) + { + case ACTION_ENTER_MENUITEM: + old_icons = global_settings.show_icons; + break; + case ACTION_EXIT_MENUITEM: + if (old_icons != global_settings.show_icons) + icons_init(); + break; + } + return ACTION_REDRAW; +} + +MENUITEM_SETTING(show_icons, &global_settings.show_icons, showicons_callback); MENUITEM_FUNCTION(browse_themes, MENU_FUNC_USEPARAM, ID2P(LANG_CUSTOM_THEME), browse_folder, (void*)&themes, NULL, Icon_Config); diff --git a/apps/shortcuts.c b/apps/shortcuts.c index 3992068807..8ded75c1f2 100644 --- a/apps/shortcuts.c +++ b/apps/shortcuts.c @@ -357,7 +357,8 @@ int do_shortcut_menu(void *ignored) simplelist_info_init(&list, P2STR(ID2P(LANG_SHORTCUTS)), shortcut_count, NULL); list.get_name = shortcut_menu_get_name; list.action_callback = shortcut_menu_get_action; - list.get_icon = shortcut_menu_get_icon; + if (global_settings.show_icons) + list.get_icon = shortcut_menu_get_icon; list.title_icon = Icon_Bookmark; push_current_activity(ACTIVITY_SHORTCUTSMENU);