]> Creatis software - creaImageIO.git/blobdiff - src2/creaImageIOWxTreeView.cpp
*** empty log message ***
[creaImageIO.git] / src2 / creaImageIOWxTreeView.cpp
index fdf3a5c67ccfd2036071fd683d00f66bb952f8df..8e350cc73eda33ec0154c647b39fb2fff2417579 100644 (file)
@@ -5,26 +5,11 @@
 #include <wx/gdicmn.h>
 #include <boost/date_time/gregorian/gregorian.hpp>
 
-const std::string empty_string("");
 
 //=====================================================================
 namespace creaImageIO
 {
-  //=====================================================================
-  /// Data stored by the list items
-  struct ItemData
-  {
-    ItemData() : node(0), id(-1), attr(&empty_string) {}
-    // The corresponding Node
-    tree::Node* node;
-    // The id ?
-    int id;
-    // The pointer on the current attribute string to sort on
-    const std::string* attr;
-    // Was the item previously selected ?
-    // Useful for reselecting the item after sort
-    bool selected;
-  };
+
   //=====================================================================
 }
 //=====================================================================
@@ -263,6 +248,9 @@ namespace creaImageIO
   {
     GimmickDebugMessage(1,"WxTreeView::~WxTreeView"
                        <<std::endl);
+       delete menu;
+       delete menuItem;
+
   }
   //=====================================================================
   
@@ -271,11 +259,18 @@ namespace creaImageIO
   //=====================================================================
   const std::vector<tree::Node*>& WxTreeView::GetSelected(int level)
   {
+         std::vector<tree::Node*>& sel = mLevelList[0].Selected;
     //  if (GetSelectedUpToDate(level)) 
     int l = level - 1;
     // the selection of upper level
-       std::vector<tree::Node*>& sel(mLevelList[l].Selected);
-    sel.clear();
+       if(mLevelList.size() == level -1)
+                sel = mLevelList.back().Selected;
+       else
+                 sel=  mLevelList[l].Selected;
+       if (sel.size() > 0)
+       {
+               sel.clear();
+       }
          if (level == 1) 
       {
        sel.push_back(GetTreeHandler()->GetTree().GetTree());
@@ -492,13 +487,13 @@ namespace creaImageIO
                         wxLIST_MASK_FORMAT
                         );
            
-           ItemData* data = new ItemData;
+               ItemData* data = new ItemData();
            data->node = *j;
            data->id = _id;
-           
+               
            item.SetId(_id);
            item.SetData(data);
-           
+
            _id++;
            GetCtrl(l)->InsertItem(item);
            
@@ -539,13 +534,15 @@ namespace creaImageIO
                  }
                else
                  {
-                   
+                   if (val.size()==0) val = "?";
                  }
-               if (val.size()==0) val = "?";
+               if (val.size()==0) val = "X";
                item.SetText( crea::std2wx(val));
                item.SetColumn(k);
-               GetCtrl(l)->SetItem(item);
-             } 
+                 
+                 GetCtrl(l)->SetItem(item);
+                 }
+               item.Clear();
            
          }
       }
@@ -618,7 +615,8 @@ namespace creaImageIO
        GetGimmickView()->ClearSelection();
       }
     // Select all images if the selection is at series level
-    if (level==mLevelList.size()-2) SelectAll(level+1);
+    if (level==mLevelList.size()-2) 
+               SelectAll(level+1);
     // Validate selected images if the selection is at image level
     if (level==(mLevelList.size()-1)) //&&mProcess) 
       {
@@ -656,7 +654,7 @@ namespace creaImageIO
            mIgnoreSelectedChanged = true;//    mProcess=false;
          }
        GetCtrl(level)->SetItemState(item,wxLIST_STATE_SELECTED, wxLIST_MASK_STATE 
-                                    | wxLIST_MASK_TEXT |wxLIST_MASK_IMAGE | wxLIST_MASK_DATA | wxLIST_MASK_WIDTH | wxLIST_MASK_FORMAT);
+                                    | wxLIST_MASK_TEXT |wxLIST_MASK_IMAGE | wxLIST_MASK_DATA | wxLIST_MASK_WIDTH | wxLIST_MASK_FORMAT);
       }
   }