Index: imagefield.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/imagefield/imagefield.module,v
retrieving revision 1.103
diff -u -p -r1.103 imagefield.module
--- imagefield.module	28 Aug 2009 03:53:15 -0000	1.103
+++ imagefield.module	26 Apr 2010 00:09:36 -0000
@@ -319,20 +319,25 @@ function theme_imagefield_item($item) {
   return theme('imagefield_image', $item, $item['alt'], $item['title']);
 }
 
-function theme_imagefield_widget_preview($item = NULL) {
-  return '<div class="imagefield-preview">' . theme('imagefield_admin_thumbnail', $item) . '</div>';
+function theme_imagefield_widget_preview($item = NULL, $preview_preset = '') {
+  return '<div class="imagefield-preview">' . theme('imagefield_admin_thumbnail', $item, $preview_preset) . '</div>';
 }
 
 function theme_imagefield_widget_item($element) {
   return theme('filefield_widget_item', $element);
 }
 
-function theme_imagefield_admin_thumbnail($item = NULL) {
+function theme_imagefield_admin_thumbnail($item = NULL, $preview_preset = '') {
   if (is_null($item) || empty($item['filepath'])) {
     return '<!-- link to default admin thumb -->';
   }
-  $thumb_path = imagefield_file_admin_thumb_path($item);
-  return '<img src="'. file_create_url($thumb_path) .'" title="' . check_plain($item['filename']) . '" />';
+  if (!empty($preview_preset)) {
+    return theme('imagecache', $preview_preset, $item['filepath']);
+  }
+  else {
+    $thumb_path = imagefield_file_admin_thumb_path($item);
+    return '<img src="'. file_create_url($thumb_path) .'" title="' . check_plain($item['filename']) . '" />';
+  }
 }
 /**
  * @} End defgroup "Theme Callbacks".
Index: imagefield_widget.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/imagefield/imagefield_widget.inc,v
retrieving revision 1.41
diff -u -p -r1.41 imagefield_widget.inc
--- imagefield_widget.inc	24 Apr 2010 05:28:39 -0000	1.41
+++ imagefield_widget.inc	26 Apr 2010 00:17:40 -0000
@@ -123,6 +123,39 @@ function imagefield_widget_settings_form
     '#type' => 'value',
     '#value' => $widget['default_image'],
   );
+  
+  // preview options (imagecahe for preview thumbnails)
+  $form['preview'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Preview Thumbnail Settings'),
+    '#collapsible' => true,
+    '#collapsed' => true,
+    '#weight' => 8,
+  );
+  $form['preview']['preview_preset'] = array(
+    '#default_value' => !empty($widget['preview_preset']) ? $widget['preview_preset'] : '',
+  );
+  
+  if (module_exists('imagecache')) {
+    $imagecache_presets = imagecache_presets();
+    $preview_presets_list[''] = t('<Do not use imagecache>');
+    foreach ($imagecache_presets as $key => $preset) {
+      $preview_presets_list[$preset['presetname']] = $preset['presetname'];
+    }
+    $form['preview']['preview_preset'] = $form['preview']['preview_preset'] + array(
+      '#type' => 'select',
+      '#title' => t('Imagecache Preset'),
+      '#description' => t('This imagecache preset will be used to creeate the thumbnail.'),
+      '#options' => $preview_presets_list, // @str_replace: returns correct node type
+    );
+  } else {
+    $form['preview']['imagecache_disabled'] = array(
+      '#value' => '<p>'.t('Enable <a href="http://drupal.org/project/imagecache">imagecache</a> to control the way preview thumbnails should be shown for this field.').'</p>',
+    );
+    $form['preview']['preview_preset'] = $form['preview']['preset_name'] + array(
+      '#type' => 'value',
+    );
+  }
 
   return $form;
 }
@@ -189,7 +222,7 @@ function imagefield_widget_settings_vali
  */
 function imagefield_widget_settings_save($widget) {
   $filefield_settings = module_invoke('filefield', 'widget_settings', 'save', $widget);
-  return array_merge($filefield_settings, array('max_resolution', 'min_resolution', 'alt',  'custom_alt', 'title', 'custom_title', 'title_type', 'default_image', 'use_default_image'));
+  return array_merge($filefield_settings, array('max_resolution', 'min_resolution', 'alt',  'custom_alt', 'title', 'custom_title', 'title_type', 'default_image', 'use_default_image', 'preview_preset'));
 }
 
 /**
@@ -218,7 +251,8 @@ function imagefield_widget_process($elem
   $element['#theme'] = 'imagefield_widget_item';
 
   if (isset($element['preview']) && $element['#value']['fid'] != 0) {
-    $element['preview']['#value'] = theme('imagefield_widget_preview', $element['#value']);
+    $preview_preset = module_exists('imagecache') ? $field['widget']['preview_preset'] : '';
+    $element['preview']['#value'] = theme('imagefield_widget_preview', $element['#value'], $preview_preset);
   }
 
   // Check if using the default alt text and replace tokens.
