--- filefield_sources_reference_opt.module.orig	2011-10-17 21:01:51.000000000 +0200
+++ filefield_sources_reference_opt.module	2011-10-17 21:23:04.000000000 +0200
@@ -20,20 +20,6 @@
 }
 
 /**
- * Implementation of hook_theme().
- */
-function filefield_sources_reference_opt_theme() {
-  return array(
-    'filefield_sources_reference_opt_element' => array(
-      'arguments' => array('element' => NULL),
-    ),
-    'filefield_sources_reference_opt_autocomplete_item' => array(
-      'arguments' => array('file' => NULL),
-    ),
-  );
-}
-
-/**
  * Implementation of hook_widget_settings_alter().
  */
 function filefield_sources_reference_opt_widget_settings_alter(&$settings, $op, $widget) {
@@ -122,13 +108,6 @@
  */
 function filefield_sources_reference_opt_process($element, $edit, &$form_state, $form) {
 
-  $element['filefield_reference'] = array(
-    '#theme' => 'filefield_sources_reference_opt_element',
-    '#weight' => 100.5,
-    '#access' => empty($element['fid']['#value']),
-    '#filefield_sources_hint_text' => FILEFIELD_SOURCE_REFERENCE_OPT_HINT_TEXT,
-  );
-
   $element['filefield_reference']['autocomplete'] = array(
     '#type' => 'textfield',
     '#autocomplete_path' => 'filefield/reference/' . $element['#type_name'] . '/' . $element['#field_name'],
@@ -183,7 +162,7 @@
   if (!empty($field)) {
     $files = filefield_sources_reference_opt_get_files($filename, $field);
     foreach ($files as $fid => $file) {
-      $items[$file->filename ." [fid:$fid]"] = theme('filefield_sources_reference_opt_autocomplete_item', $file);
+      $items[$file['title'] ." [fid:$fid]"] = '<div class="reference-autocomplete">'. $file['rendered'] . '</div>';
     }
   }
 
@@ -191,25 +170,6 @@
 }
 
 /**
- * Theme the output of a single item in the autocomplete list.
- */
-function theme_filefield_sources_reference_opt_autocomplete_item($file) {
-  $output = '';
-  $output .= '<div class="filefield-source-reference-item">';
-  $output .= '<span class="filename">' . $file->filename . '</span> <span class="filesize">(' . format_size($file->filesize) . ')</span>';
-  $output .= '</div>';
-  return $output;
-}
-
-/**
- * Theme the output of the autocomplete field.
- */
-function theme_filefield_sources_reference_opt_element($element) {
-  $element['autocomplete']['#field_suffix'] = theme('submit', $element['select']);
-  return '<div class="filefield-source filefield-source-reference clear-block">' . theme('textfield', $element['autocomplete']) . '</div>';
-}
-
-/**
  * Get all the files used within a particular field (or all fields).
  *
  * @param $filename
@@ -243,7 +203,10 @@
       $like = empty($field['widget']['filefield_source_autocomplete']) ? '%s%%' : '%%%s%%';
       $result = db_query_range("SELECT f.* FROM {" . $db_info['table'] . "} c INNER JOIN {files} f ON c." . $db_info['columns']['fid']['column'] . " = f.fid WHERE f.filename LIKE '" . $like . "' AND f.status = 1 ORDER BY f.timestamp DESC", $filename, 0, 30);
       while ($file = db_fetch_object($result)) {
-        $files[$file->fid] = $file;
+        $files[$file->fid] = array(
+          'title' => $file->filename,
+          'rendered' => check_plain($file->filename),
+        );
       }
     }
   }
@@ -284,9 +247,11 @@
     $view->display_handler->set_option('content_options', $options);
 
     // Limit result set size.
-    $limit = isset($limit) ? $limit : 0;
+    $limit = isset($limit) ? $limit : 10;
     $view->display_handler->set_option('items_per_page', $limit);
 
+    // We do need fid field, so add it if not present
+/*
     $fields = $view->get_items('field', $display);
     if (!isset($fields['fid'])) {
       $view->add_item($display, 'field', 'files', 'fid');
@@ -297,22 +262,23 @@
     if (!isset($fields['filesize'])) {
       $view->add_item($display, 'field', 'files', 'filesize');
     }
+*/
+
+   // Make all fields inline and define a separator.
+    $options = $view->display_handler->get_option('row_options');
+    if (empty($options['inline'])) {
+      $options['inline'] = drupal_map_assoc(array_keys($view->get_items('field', $display)));
+    }
+    if (empty($options['separator'])) {
+      $options['separator'] = '-';
+    }
+    $view->display_handler->set_option('row_options', $options);
 
     // Make sure the query is not cached
     $view->is_cacheable = FALSE;
 
     // Get the results.
-    $view->render();
-    $files = $view->result;
-    $result = array();
-    foreach ($files as $file) {
-      $result[$file->fid] = array(
-        'fid' => $file->fid,
-        'filename' => $file->files_filename,
-        'filesize' => $file->files_filesize,
-      );
-      $result[$file->fid] = (object) $result[$file->fid];
-    }
+    $result = $view->execute_display($display);
   }
   else {
     $result = FALSE;
