Index: project.inc
===================================================================
RCS file: /Users/wright/drupal/local_repo/contributions/modules/project/project.inc,v
retrieving revision 1.152
diff -u -p -r1.152 project.inc
--- project.inc	1 Sep 2010 18:25:42 -0000	1.152
+++ project.inc	18 Oct 2010 20:37:58 -0000
@@ -288,6 +288,11 @@ function project_project_validate(&$node
 }
 
 function project_project_set_breadcrumb($node = NULL, $extra = NULL) {
+  $breadcrumb = project_project_get_breadcrumb($node, $extra);
+  drupal_set_breadcrumb($breadcrumb);
+}
+
+function project_project_get_breadcrumb($node = NULL, $extra = NULL) {
   $breadcrumb = array();
   $breadcrumb[] = l(t('Home'), NULL);
 
@@ -324,8 +329,7 @@ function project_project_set_breadcrumb(
   elseif ($extra && !empty($node)) {
     $breadcrumb[] = l($node->title, 'node/'. $node->nid);
   }
-
-  drupal_set_breadcrumb($breadcrumb);
+  return $breadcrumb;
 }
 
 function project_project_view($node, $teaser = false, $page = false) {
Index: release/views/project_release.views.inc
===================================================================
RCS file: /Users/wright/drupal/local_repo/contributions/modules/project/release/views/project_release.views.inc,v
retrieving revision 1.15
diff -u -p -r1.15 project_release.views.inc
--- release/views/project_release.views.inc	22 Aug 2010 00:14:51 -0000	1.15
+++ release/views/project_release.views.inc	18 Oct 2010 20:42:40 -0000
@@ -49,7 +49,7 @@ function project_release_views_data() {
     ),
     // Information for accepting a pid as an argument
     'argument' => array(
-      'handler' => 'views_handler_argument_node_nid',
+      'handler' => 'project_handler_argument_project_nid',
       'name field' => 'title',
       'numeric' => TRUE,
       'validate type' => 'nid',
Index: release/views/default_views/project_release_by_project.view.php
===================================================================
RCS file: /Users/wright/drupal/local_repo/contributions/modules/project/release/views/default_views/project_release_by_project.view.php,v
retrieving revision 1.1
diff -u -p -r1.1 project_release_by_project.view.php
--- release/views/default_views/project_release_by_project.view.php	25 Nov 2009 16:53:46 -0000	1.1
+++ release/views/default_views/project_release_by_project.view.php	18 Oct 2010 20:56:38 -0000
@@ -64,9 +64,10 @@ $handler->override_option('arguments', a
     'wildcard' => 'all',
     'wildcard_substitution' => 'All',
     'title' => 'Releases for %1',
+    'breadcrumb' => 'project',
     'default_argument_type' => 'fixed',
     'default_argument' => '',
-    'validate_type' => 'node',
+    'validate_type' => 'project_nid',
     'validate_fail' => 'empty',
     'break_phrase' => 0,
     'not' => 0,
@@ -76,17 +77,6 @@ $handler->override_option('arguments', a
     'relationship' => 'none',
     'default_argument_fixed' => '',
     'default_argument_php' => '',
-    'validate_argument_node_type' => array(
-      'project_project' => 'project_project',
-    ),
-    'validate_argument_type' => 'tid',
-    'validate_argument_php' => '',
-    'validate_argument_node_access' => 1,
-    'validate_argument_nid_type' => 'nid',
-    'default_options_div_prefix' => '',
-    'validate_argument_project_term_vocabulary' => array(
-      '1' => 0,
-    ),
   ),
 ));
 $handler->override_option('filters', array(
cvs diff: Diffing views
Index: views/project.views.inc
===================================================================
RCS file: /Users/wright/drupal/local_repo/contributions/modules/project/views/project.views.inc,v
retrieving revision 1.6
diff -u -p -r1.6 project.views.inc
--- views/project.views.inc	22 Aug 2010 00:14:51 -0000	1.6
+++ views/project.views.inc	18 Oct 2010 20:42:38 -0000
@@ -261,6 +261,9 @@ function project_views_handlers() {
       'path' => drupal_get_path('module', 'project') .'/views/handlers',
     ),
     'handlers' => array(
+      'project_handler_argument_project_nid' => array(
+        'parent' => 'views_handler_argument_node_nid',
+      ),
       'project_handler_argument_term_node_tid_depth_project' => array(
         'parent' => 'views_handler_argument_term_node_tid',
       ),
cvs diff: Diffing views/default_views
cvs diff: Diffing views/handlers
Index: views/handlers/project_handler_argument_project_nid.inc
===================================================================
RCS file: views/handlers/project_handler_argument_project_nid.inc
diff -N views/handlers/project_handler_argument_project_nid.inc
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ views/handlers/project_handler_argument_project_nid.inc	18 Oct 2010 20:52:22 -0000
@@ -0,0 +1,36 @@
+<?php
+// $Id$
+
+/**
+ * 
+ */
+class project_handler_argument_project_nid extends views_handler_argument_node_nid {
+  function option_definition() {
+    $options = parent::option_definition();
+    $options['breadcrumb'] = array('default' => 'none');
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    $form['breadcrumb'] = array(
+      '#type' => 'radios',
+      '#title' => t('Breadcrumb behavior'),
+      '#default_value' => $this->options['breadcrumb'],
+      '#options' => array(
+        'none' => t('No override'),
+        'no-project' => t('Breadcrumb for the project section'),
+        'project' => t('Breadcrumb including the project itself'),
+      ),
+    );
+  }
+
+  function set_breadcrumb(&$breadcrumb) {
+    if (empty($this->options['breadcrumb']) || $this->options['breadcrumb'] == 'none' || empty($this->argument) || !is_numeric($this->argument)) {
+      return;
+    }
+    $project = node_load($this->argument);
+    $include_project = $this->options['breadcrumb'] == 'project';
+    $breadcrumb = project_project_get_breadcrumb($project, $include_project);
+  }
+}
cvs diff: Diffing views/plugins
cvs diff: Diffing views/theme
