Index: imagefield/imagefield.module
===================================================================
--- imagefield/imagefield.module	(revision 10)
+++ imagefield/imagefield.module	(working copy)
@@ -164,7 +164,7 @@
   // Add default values to items.
   // TODO: use CCK's default value callback.
   if (empty($items[$delta])) {
-    $items[$delta] = array('alt' => '', 'title' => '');
+    $items[$delta] = array('alt' => '', 'title' => '', 'use_preset' => FALSE, 'preset_name' => '');
   }
 
   // Start with the FileField widget as a basic start.
@@ -186,6 +186,10 @@
     );
   }
 
+  // add info for the imagecache settings
+  $element['#default_value']['data']['use_preset'] = $field['widget']['use_preset'];
+  $element['#default_value']['data']['preset_name'] = $field['widget']['preset_name'];
+
   return $element;
 }
 
@@ -271,11 +275,18 @@
 }
 
 function theme_imagefield_admin_thumbnail($item = null) {
-  if (is_null($item) || empty($item['filepath'])) {
-    return '<!-- link to default admin thumb -->';
+//	print_r($item);
+  if (module_exists('imagecache') && isset($item['data']['use_preset']) && isset($item['data']['preset_name'])) {
+    return theme('imagecache', $item['data']['preset_name'], $item['filepath']);
+  } else
+  {
+    if (is_null($item) || empty($item['filepath'])) {
+      return '<!-- link to default admin thumb -->';
+    }
+    $thumb_path = imagefield_file_admin_thumb_path($item);
+    return '<img class="xyzzy' .$item['data']['preset_name'] .'x" src="'. file_create_url($thumb_path) .'" />';
   }
-  $thumb_path = imagefield_file_admin_thumb_path($item);
-  return '<img src="'. file_create_url($thumb_path) .'" />';
+
 }
 /**
  * @} End defgroup "Theme Callbacks".
Index: imagefield/imagefield_widget.inc
===================================================================
--- imagefield/imagefield_widget.inc	(revision 10)
+++ imagefield/imagefield_widget.inc	(working copy)
@@ -1,5 +1,5 @@
 <?php
-// $Id: imagefield_widget.inc,v 1.27 2009/03/15 05:30:55 quicksketch Exp $
+// $Id: imagefield_widget.inc,v 1.26 2009/03/13 05:25:06 quicksketch Exp $
 
 /**
  * @file
@@ -92,6 +92,35 @@
     '#description' => t('This value will be used as the image title by default.'),
     '#suffix' =>  theme('token_help', 'file'),
   );
+  
+  // imagecache module presets
+  if (module_exists('imagecache')) {
+    $image_sizes = imagecache_presets();
+      foreach ($image_sizes as $key => $size) {
+        $preview_presets_list[$size['presetname']] = t('Image size') .': ' .$size['presetname'];
+      }
+	  $form['imagecache_settings'] = array(
+	    '#type' => 'fieldset',
+	    '#title' => t('Imagecache settings'),
+	    '#collapsible' => true,
+	    '#collapsed' => true,
+	    '#weight' => 8,
+	  );
+      $form['imagecache_settings']['use_preset'] = array(
+        '#type' => 'checkbox',
+        '#title' => t('Use Imagecache Preset'),
+        '#description' => t('Use imagecache for preview.'),
+        '#default_value' => !empty($widget['use_preset']) ? $widget['use_preset'] : '',
+      );
+      $form['imagecache_settings']['preset_name'] = 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
+        '#default_value' => !empty($widget['preset_name']) ? $widget['preset_name'] : '',
+      );
+  }
+
   return $form;
 }
 
@@ -113,7 +142,12 @@
 function imagefield_widget_settings_save($widget) {
   // TODO: Rename custom_alt and custom_title to alt_custom and title_custom.
   $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'));
+  if (module_exists('imagecache')) {
+    return array_merge($filefield_settings, array('max_resolution', 'min_resolution', 'alt',  'custom_alt', 'title', 'custom_title', 'use_preset', 'preset_name'));
+  } else
+  {
+    return array_merge($filefield_settings, array('max_resolution', 'min_resolution', 'alt',  'custom_alt', 'title', 'custom_title'));
+  }
 }
 
 /**
@@ -124,10 +158,14 @@
   if ($edit) {
     $item['alt'] = isset($edit['alt']) ? $edit['alt'] : '';
     $item['title'] = isset($edit['title']) ? $edit['title'] : '';
+    $item['use_preset'] = isset($edit['use_preset']) ? $edit['use_preset'] : '';
+    $item['preset_name'] = isset($edit['preset_name']) ? $edit['preset_name'] : '';
   }
   else {
     $item['alt'] = '';
     $item['title'] = '';
+    $item['use_preset'] = '';
+    $item['preset_name'] = '';
   }
   return $item;
 }
@@ -141,10 +179,6 @@
 
   $element['#theme'] = 'imagefield_widget_item';
 
-  if (isset($element['preview']) && $element['#value']['fid'] != 0) {
-    $element['preview']['#value'] = theme('imagefield_widget_preview', $element['#value']);
-  }
-
   // Check if using the default alt text and replace tokens.
   $default_alt = (!$field['widget']['custom_alt'] || ($file['status'] == 0 && empty($file['data']['alt'])));
   if ($default_alt && function_exists('token_replace')) {
@@ -180,6 +214,22 @@
     $element['data']['title']['#value'] = $field['widget']['title'];
   }
 
+  if (module_exists('imagecache')) {
+    $element['data']['use_preset'] = array(
+      '#type' => 'value',
+      '#title' => t('Use Imagecache Preset'),
+      '#default_value' => $field['widget']['use_preset'],
+      '#value' => $field['widget']['use_preset'],
+    );
+    $element['data']['preset_name'] = array(
+      '#type' => 'value',
+      '#title' => t('Preview Image Preset'),
+      '#default_value' => $field['widget']['preset_name'],
+      '#value' => $field['widget']['preset_name'],
+    );
+    //print_r($element);
+  }
+
   return $element;
 }
 
