]> Creatis software - creaImageIO.git/blobdiff - src2/creaImageIOWxGimmickView.cpp
Validate is now linear
[creaImageIO.git] / src2 / creaImageIOWxGimmickView.cpp
index cd23af7625236228405a889ff5be677d6f27d310..ba41e35f13582bb720e92c40cdacdaaa8d2732c7 100644 (file)
@@ -371,24 +371,56 @@ namespace creaImageIO
   //=================================================
 
   //=================================================
-  void WxGimmickView::OnSelectionChange(std::vector<tree::Node*>& sel)
+  void WxGimmickView::OnSelectionChange(std::vector<tree::Node*>& sel, bool isSelection, int selection, bool needProcess)
   {      
     GimmickDebugMessage(5,
                        "WxGimmickView::OnSelectionChange"
                        <<std::endl);
     wxBusyCursor busy;
-    bool valid = ValidateSelected(sel,
-                                 mSelectionMinDimension,
-                                 mSelectionMaxDimension );
+       bool valid=true;
+       if(sel.size()==0)
+       {
+               SetMessage("Cannot have 0 images selected!");
+       }
+       else if(needProcess)
+       {
+               ClearStatus();
+               std::vector<tree::Node*>::iterator i;
+               for(i=sel.begin();i!=sel.end()&&valid;++i)
+               {
+                       valid= ValidateSelected((*i),
+                               mSelectionMinDimension,
+                               mSelectionMaxDimension );
+               }
+       }
+       else if(isSelection)
+       {
+               valid= ValidateSelected(sel.front(),
+                               mSelectionMinDimension,
+                               mSelectionMaxDimension );
+       }
+       else
+       {
+               ClearStatus();
+               std::vector<tree::Node*>::iterator i;
+               for(i=sel.begin();i!=sel.end()&&valid;++i)
+               {
+                       valid= ValidateSelected((*i),
+                               mSelectionMinDimension,
+                               mSelectionMaxDimension );
+               }
+       }
+       
     mText->SetLabel(crea::std2wx(GetMessage()));
-    if(valid)
+    /*if(valid)
       {
        ReadImageThreaded(sel);
       }
     else
       {
                  ClearSelection();
-      }
+      }*/
+       ReadImageThreaded(sel);
 
     
    }
@@ -462,6 +494,13 @@ namespace creaImageIO
                if (prio == maxprio) break;
        }
    }
+   else
+   {
+          pointers.clear();
+          ImagePointerHolder* ph=new ImagePointerHolder(GetDefaultImage());
+          pointers.push_back(ph);
+          mViewer->SetImageVector(pointers);
+   }
   }
 
   //==================================================
@@ -491,6 +530,7 @@ namespace creaImageIO
        pointers.push_back(new ImagePointerHolder(GetDefaultImage()));
        mViewer->SetImageVector(pointers);
        mViewer->RefreshIfNecessary();
+       ClearStatus();
   }
   
   //=================================================