Index: viewsdisplaytabs.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/viewsdisplaytabs/viewsdisplaytabs.module,v
retrieving revision 1.1.2.7
diff -u -p -r1.1.2.7 viewsdisplaytabs.module
--- viewsdisplaytabs.module	24 Feb 2010 23:25:47 -0000	1.1.2.7
+++ viewsdisplaytabs.module	4 Mar 2010 08:44:48 -0000
@@ -69,7 +69,11 @@ function viewsdisplaytabs_preprocess_vie
   $settings = variable_get('viewsdisplaytabs_settings', array());
   $show = ( $empty ? $empty && $settings['view_show_empty'][$view->name] == 1 : true );
 
-  if ($settings['view_enabled'][$view->name] == 1 && $show) {
+  if ($settings['view_exclude_displays'][$view->name]) {
+    $excluded = in_array($view->current_display, $settings['view_exclude_displays'][$view->name]);
+  }
+  
+  if ($settings['view_enabled'][$view->name] == 1 && $show && !$excluded) {
     $selected_displays = $settings['view_displays'][$view->name];
 
     // Collect displays and build grouping array
@@ -157,8 +161,8 @@ function viewsdisplaytabs_views_pre_view
 function theme__viewsdisplaytabs_admin($form) {
 
   // Overview table:
-  $header = array(t('Enabled'), t('Name'), t('Displays'), t('Default Active'), t('Show when empty'), t('Separator'), t('Throbber'), t('Edit'));
-
+  $header = array(t('Enabled'), t('Name'), t('Displays'), t('Exclude Displays'), t('Default Active'), t('Show when empty'), t('Separator'), t('Throbber'), t('Edit'));
+  
   $view_list = $form['views']['view_list'];
 
   if (isset($view_list['view_name']) && is_array($view_list['view_name'])) {
@@ -167,6 +171,7 @@ function theme__viewsdisplaytabs_admin($
         drupal_render($view_list['view_enabled'][$key]),
         drupal_render($view_list['view_name'][$key]),
         drupal_render($view_list['view_displays'][$key]),
+        drupal_render($view_list['view_exclude_displays'][$key]),
         drupal_render($view_list['view_displays_default'][$key]),
         drupal_render($view_list['view_show_empty'][$key]),
         drupal_render($view_list['view_group_separator'][$key]),
@@ -261,6 +266,9 @@ function _viewsdisplaytabs_admin() {
 	<dt>Displays</dt>
 	<dd><p>Check the displays you want to expose as tabs. If no displays are checked, all tabs become displays.</p></dd>
 
+	<dt>Exclude Displays</dt>
+  <dd><p>Check the displays you don't want the tabs to be displayed in. If no displays are checked, all displays will show the selected tabs.</p></dd>
+	
 	<dt>Default Active</dt>
 	<dd><p>The 'default active' select field allows you to set a tab to be active by default. Doing this won't make the display associated with that tab load by default it will only <em>make it seem as if that display were loaded by default</em>.</p>
 	<p>This is useful as it will give the site's users the impression that one tab is already active. They will also conclude that what they see is a result of the filtering done with that tab and that they can return to that filtering again simply by clicking that tab.</p>
@@ -326,6 +334,19 @@ $form['views'] = array(
         '#default_value' => ( $settings['view_displays'][$vid] ? $settings['view_displays'][$vid] : array() ),
         '#options' => ( is_array($view_data->displays) ? $view_data->displays : array() ),
       );
+      
+      $view_exclude_displays_fieldset = array(
+        '#type' => 'fieldset',
+        '#title' => t('Exclude Displays'),
+        '#collapsed' => !(is_array($settings['view_exclude_displays'][$vid]) && count($settings['view_exclude_displays'][$vid])),
+        '#collapsible' => true
+      );
+
+      $view_exclude_displays_fieldset["view_exclude_displays_$vid"] = array(
+        '#type' => 'checkboxes',
+        '#default_value' => ( $settings['view_exclude_displays'][$vid] ? $settings['view_exclude_displays'][$vid] : array() ),
+        '#options' => ( is_array($view_data->displays) ? $view_data->displays : array() ),
+      );
 
       $view_displays_default = array(
         '#type' => 'select',
@@ -354,6 +375,7 @@ $form['views'] = array(
       $form['views']['view_list']['view_enabled'][$vid]["view_enabled_$vid"] = $view_enabled;
       $form['views']['view_list']['view_name'][$vid]["view_name_$vid"] = array('#value' => $view->name);
       $form['views']['view_list']['view_displays'][$vid]["view_displays_fieldset_$vid"] = $view_displays_fieldset;
+      $form['views']['view_list']['view_exclude_displays'][$vid]["view_exclude_displays_fieldset_$vid"] = $view_exclude_displays_fieldset;
       $form['views']['view_list']['view_displays_default'][$vid]["view_displays_default_$vid"] = $view_displays_default;
       $form['views']['view_list']['view_show_empty'][$vid]["view_show_empty_$vid"] = $view_show_empty;
       $form['views']['view_list']['view_group_separator'][$vid]["view_group_separator_$vid"] = $view_group_separator;
@@ -429,6 +451,14 @@ function _viewsdisplaytabs_admin_submit(
         }
       }
     }
+    elseif (preg_match('/view_exclude_displays_(.*)/i', $field, $result)) {
+      // We only save displays that have been checked, value is 1
+      foreach ($value as $display_name => $display_selected) {
+        if ($display_selected) {
+         $view_exclude_displays[$result[1]][$display_name] = $display_selected;
+        }
+      }
+    }
     elseif (preg_match('/view_group_separator_(.*)/i', $field, $result)) {
       $view_group_separator[$result[1]] = $value;
     }
@@ -439,6 +469,7 @@ function _viewsdisplaytabs_admin_submit(
   variable_set('viewsdisplaytabs_settings', array(
     'view_enabled' => $view_enabled,
     'view_displays' => $view_displays,
+    'view_exclude_displays' => $view_exclude_displays,
     'view_displays_default' => $view_displays_default,
     'view_show_empty' => $view_show_empty,
     'view_group_separator' => $view_group_separator,
