sub command_iconSets {
print "\nDefine the icon themes that you wish to use. If you have added\n";
print "a theme of your own, just follow the instructions (?) about\n";
- print "how to add them. You can also change the default theme.\n\n";
+ print "how to add them. You can also change the default and fallback\n";
+ print "themes. The default theme will be used when no icon theme is\n";
+ print "set by the user. The fallback theme will be used if an icon\n";
+ print "cannot be found in the currently selected icon theme.\n\n";
print "Available icon themes:\n\n";
$count = 0;
while ( $count <= $#icon_theme_name ) {
if ( $count == $icon_theme_def ) {
- print " *";
+ print " d";
+ } else {
+ print " ";
+ }
+ if ( $count eq $icon_theme_fallback ) {
+ print "f ";
} else {
print " ";
}
$count++;
}
+ print "\n d = Default icon theme\n";
+ print " f = Fallback icon theme\n";
print "\n";
print ".------------------------------------.\n";
print "| t (detect icon themes) |\n";
print "| + (add icon theme) |\n";
print "| - N (remove icon theme) |\n";
print "| m N (mark default icon theme) |\n";
+ print "| f N (set fallback icon set) |\n";
print "| l (list icon themes) |\n";
print "| d (done) |\n";
print "`------------------------------------'\n";
while ( $input ne "d" ) {
if ( $input =~ /^\s*l\s*/i ) {
$count = 0;
+ print "\n";
while ( $count <= $#icon_theme_name ) {
- if ( $count == $icon_theme_def ) {
- print " *";
- } else {
- print " ";
- }
- if ( $count < 10 ) {
- print " ";
- }
+ if ( $count == $icon_theme_def ) {
+ print " d";
+ } else {
+ print " ";
+ }
+ if ( $count eq $icon_theme_fallback ) {
+ print "f ";
+ } else {
+ print " ";
+ }
$name = $icon_theme_name[$count];
$num_spaces = 35 - length($name);
for ( $i = 0 ; $i < $num_spaces ; $i++ ) {
$count++;
}
+ print "\n d = Default icon theme\n";
+ print " f = Fallback icon theme\n\n";
} elsif ( $input =~ /^\s*m\s*[0-9]+/i ) {
$old_def = $icon_theme_def;
$icon_theme_def = $input;
print "Cannot set default icon theme to $icon_theme_default. That theme does not exist.\n";
$icon_theme_def = $old_def;
}
+ } elsif ( $input =~ /^\s*f\s*[0-9]+/i ) {
+ $old_fb = $icon_theme_fallback;
+ $icon_theme_fallback = $input;
+ $icon_theme_fallback =~ s/^\s*f\s*//;
+ if ( ( $icon_theme_fallback > $#icon_theme_name ) || ( $icon_theme_fallback < 0 ) ) {
+ print "Cannot set fallback icon theme to $icon_theme_fallback. That theme does not exist.\n";
+ $icon_theme_fallback = $old_fb;
+ }
} elsif ( $input =~ /^\s*\+/ ) {
print "What is the name of this icon theme? ";
$name = <STDIN>;
}
if ( $rem_num == $icon_theme_def ) {
print "You cannot remove the default icon theme!\n";
+ } elsif ( $rem_num == $icon_theme_fallback ) {
+ print "You cannot remove the fallback icon theme!\n";
} else {
$count = 0;
@new_theme_name = ();
print "| + (add icon theme) |\n";
print "| - N (remove icon theme) |\n";
print "| m N (mark default icon theme) |\n";
+ print "| f N (set fallback icon set) |\n";
print "| l (list icon themes) |\n";
print "| d (done) |\n";
print "`------------------------------------'\n";
if ( $icon_theme_def eq '' ) { $icon_theme_def = '0'; }
print CF "\$icon_theme_def = $icon_theme_def;\n";
-
+ if ( $icon_theme_fallback eq '' ) { $icon_theme_fallback = '0'; }
+ print CF "\$icon_theme_fallback = $icon_theme_fallback;\n";
+
for ( $count = 0 ; $count <= $#icon_theme_name ; $count++ ) {
$path = $icon_theme_path[$count];
if ($path eq 'none' || $path eq 'template') {
// user's icon theme, if using icons
$icon_theme = getPref($data_dir, $username, 'icon_theme');
$default_icon_theme = $icon_themes[$icon_theme_def]['PATH'];
+$fallback_icon_theme = $icon_themes[$icon_theme_fallback]['PATH'];
$found_theme = false;
// Make sure the chosen icon theme is a legitimate one.
* set the icon theme to "None," no icons will be used.
*/
$icon_theme_path = (!$use_icons || $icon_theme=='none') ? NULL : ($icon_theme == 'template' ? SM_PATH . Template::calculate_template_images_directory($sTemplateID) : $icon_theme);
+$default_icon_theme_path = (!$use_icons || $default_icon_theme=='none') ? NULL : ($default_icon_theme == 'template' ? SM_PATH . Template::calculate_template_images_directory($sTemplateID) : $default_icon_theme);
+$fallback_icon_theme_path = (!$use_icons || $fallback_icon_theme=='none') ? NULL : ($fallback_icon_theme == 'template' ? SM_PATH . Template::calculate_template_images_directory($sTemplateID) : $fallback_icon_theme);
// show (or not) flag and unflag buttons on mailbox list screen
$show_flag_buttons = getPref($data_dir, $username, 'show_flag_buttons', SMPREF_ON );
* @since 1.5.2
*/
function getIconPath ($icon_theme_path, $icon_name) {
- global $default_icon_theme;
+ global $fallback_icon_theme_path;
if (is_null($icon_theme_path))
return NULL;
if (is_file($icon_theme_path . $icon_name)) {
return $icon_theme_path . $icon_name;
- // Icon not found, check for the admin-specified default
- } elseif (!is_null($default_icon_theme) && is_file($default_icon_theme . $icon_name)) {
- return $default_icon_theme . $icon_name;
+ // Icon not found, check for the admin-specified fallback
+ } elseif (!is_null($fallback_icon_theme_path) && is_file($fallback_icon_theme_path . $icon_name)) {
+ return $fallback_icon_theme_path . $icon_name;
// Icon not found, return the SQM default icon
} elseif (is_file(SM_PATH . 'images/themes/default/'.$icon_name)) {