From 6af4831637e7dbc737fc8a42ae1395ee94658103 Mon Sep 17 00:00:00 2001 From: jean-pierre roux Date: Thu, 22 Oct 2009 12:25:32 +0000 Subject: [PATCH] Add GetSelectImagesInVector() --- src2/creaImageIODicomImageReader.cpp | 19 ++--- src2/creaImageIOGimmickView.cpp | 85 ++++++++++++++++------ src2/creaImageIOGimmickView.h | 52 ++++++++----- src2/creaImageIOMultiThreadImageReader.cpp | 11 +-- src2/creaImageIOTreeDescriptor.cpp | 38 +++++----- src2/creaImageIOWxGimmickPanel.h | 5 ++ src2/creaImageIOWxGimmickReaderDialog.cpp | 13 +--- src2/creaImageIOWxGimmickReaderDialog.h | 8 +- src2/creaImageIOWxGimmickView.cpp | 85 +++++++++++----------- src2/creaImageIOWxGimmickView.h | 24 ++++-- src2/data/localdatabase_Descriptor.dscp | 2 +- 11 files changed, 194 insertions(+), 148 deletions(-) diff --git a/src2/creaImageIODicomImageReader.cpp b/src2/creaImageIODicomImageReader.cpp index 96d5672..66c1b00 100644 --- a/src2/creaImageIODicomImageReader.cpp +++ b/src2/creaImageIODicomImageReader.cpp @@ -30,8 +30,7 @@ namespace creaImageIO //===================================================================== bool DicomImageReader::CanRead(const std::string& filename) { - - GDCM_NAME_SPACE::Document*doc; + GDCM_NAME_SPACE::Document*doc; GDCM_NAME_SPACE::File* file = GDCM_NAME_SPACE::File::New(); file->SetLoadMode( GDCM_NAME_SPACE::LD_ALL); file->SetFileName(filename.c_str()); @@ -50,7 +49,6 @@ namespace creaImageIO //===================================================================== vtkImageData* DicomImageReader::ReadImage(const std::string& filename) { - vtkImageData* im = 0; try { @@ -66,7 +64,7 @@ namespace creaImageIO } return im; } - + //===================================================================== void DicomImageReader::PushBackExtensions(std::vector& v) { @@ -90,7 +88,6 @@ namespace creaImageIO { return str.substr(0,str.size()-1); } - return str; } //======================================================================== @@ -99,14 +96,13 @@ namespace creaImageIO void DicomImageReader::ReadAttributes(const std::string& filename, std::map& attr) { - GimmickMessage(2,"Reading attributes from DICOM file '" <SetLoadMode( GDCM_NAME_SPACE::LD_ALL); + GDCM_NAME_SPACE::File* file = GDCM_NAME_SPACE::File::New(); + + GDCM_NAME_SPACE::Document *doc= GDCM_NAME_SPACE::File::New(); + doc->SetLoadMode( GDCM_NAME_SPACE::LD_ALL); doc->SetFileName(filename.c_str()); doc->Load(); file->SetLoadMode( GDCM_NAME_SPACE::LD_ALL); @@ -114,7 +110,6 @@ namespace creaImageIO file->Load(); if (file->IsReadable() ||((GDCM_NAME_SPACE::Document*) file)->IsReadable()) { - std::map::iterator i; for (i=attr.begin();i!=attr.end();++i) { @@ -149,7 +144,7 @@ namespace creaImageIO } file->Delete(); } - + //===================================================================== } // namespace creaImageIO diff --git a/src2/creaImageIOGimmickView.cpp b/src2/creaImageIOGimmickView.cpp index b213cb1..b75dcdd 100644 --- a/src2/creaImageIOGimmickView.cpp +++ b/src2/creaImageIOGimmickView.cpp @@ -259,17 +259,15 @@ namespace creaImageIO out << mImageExtent->GetDimension() << "D image " << mImageExtent->Get(0) << "x"<< mImageExtent->Get(1) << "x"<< mImageExtent->Get(2) <<" selected"; mMessage = out.str(); } - } else { mMessage="The selected images are not compatible."; valid=false; } - } + } } - modifyValidationSignal(valid); SetMessage(mMessage); return valid; @@ -281,12 +279,10 @@ namespace creaImageIO mValidationSignal(ivalid); } - //====================================================================== ///Reads Images (Non Threaded) -void GimmickView::ReadImagesNotThreaded(std::vector& s,std::vector im, int dimension) +void GimmickView::ReadImagesNotThreaded(std::vector& s, std::vector im, int dimension) { - // Create the output data if (im.size()==1) { @@ -298,13 +294,13 @@ void GimmickView::ReadImagesNotThreaded(std::vector& s,std::vecto out->ShallowCopy(mReader.GetImage(im.front())); s.push_back( out ); } - else if (im.size()>1) + else if (im.size()>1) // Test inutile ? JPR { vtkImageData* first = mReader.GetImage( im.front()); if (dimension == 2) { // n3D - std::vector::iterator it; + std::vector::iterator it; for (it=im.begin(); it!=im.end(); ++it) { vtkImageData* out = vtkImageData::New(); @@ -320,7 +316,8 @@ void GimmickView::ReadImagesNotThreaded(std::vector& s,std::vecto out->SetScalarType(first->GetScalarType()); int ext[6]; first->GetExtent(ext); - ext[5] = im.size()-1; + //ext[5] = im.size()-1; // JPR + ext[5] = ext[5] * im.size()-1; // deal with multiframes //JPR out->SetExtent(ext); // LG : TODO : Z Spacing ? @@ -331,7 +328,10 @@ void GimmickView::ReadImagesNotThreaded(std::vector& s,std::vecto int dim[3]; first->GetDimensions(dim); - unsigned long imsize = dim[0] * dim[1];/* + unsigned long imsize = dim[0] * dim[1]; + imsize = imsize * dim[2] ; // deal with multiframes// JPR + + /* ( (unsigned long)first->GetScalarPointer(0,1,0) - (unsigned long)first->GetScalarPointer(0,0,0)) *dim[1];*/ @@ -339,9 +339,9 @@ void GimmickView::ReadImagesNotThreaded(std::vector& s,std::vecto int slice = 0; std::vector::iterator it; for (it=im.begin(); it!=im.end(); ++it) - { + { //std::cout << "copying slice "<GetScalarPointer(0,0,0); void* dst = out->GetScalarPointer(0,0,slice); @@ -352,11 +352,53 @@ void GimmickView::ReadImagesNotThreaded(std::vector& s,std::vecto memcpy(dst,src,imsize); slice++; - } + } s.push_back(out); - } - } + } +} + //====================================================================== + +void GimmickView::ReadImagesNotThreadedInVector(std::vector& s, std::vector im, int dimension) +{ + // Create the output data + if (im.size()==1) + { + // Only one image : give it + vtkImageData* out = vtkImageData::New(); + GimmickDebugMessage(3, "State Check: Full Filename: " + <ShallowCopy(mReader.GetImage(im.front())); + s.push_back( out ); + } + else if (im.size()>1) // Test inutile ? JPR + { + vtkImageData* first = mReader.GetImage( im.front()); + if (dimension == 2) + { + // n3D + std::vector::iterator it; + for (it=im.begin(); it!=im.end(); ++it) + { + vtkImageData* out = vtkImageData::New(); + out->ShallowCopy(mReader.GetImage(*it)); + s.push_back(out); + } + } + else + { + // n2D to 3D // NO! + // n *2D + T in a vector : + + std::vector::iterator it; + for (it=im.begin(); it!=im.end(); ++it) + { + vtkImageData* out = mReader.GetImage( (*it)); + s.push_back(out); + } + } + } } //====================================================================== @@ -391,10 +433,10 @@ void GimmickView::ReadImagesNotThreaded(std::vector& s,std::vecto { //What to do in this case? /* - GimmickDebugMessage(5, + GimmickDebugMessage(5, "Pushing unknown image in queue" <& s,std::vecto if (i!=mImageEventMap.end()) { GimmickDebugMessage(5, - "Putting image of file '"<second); ie.image = image; ie.pointerHolder->Set(ie.image); @@ -445,7 +487,6 @@ void GimmickView::ReadImagesNotThreaded(std::vector& s,std::vecto ie.pointerHolder->Set(GetDefaultImage()); //mImageEventMap.erase(i); } - } } @@ -455,9 +496,7 @@ void GimmickView::ReadImagesNotThreaded(std::vector& s,std::vecto void GimmickView::ConnectValidationObserver(ValidationCallbackType callback) { mValidationSignal.connect(callback); - } - + } } // EO namespace creaImageIO - diff --git a/src2/creaImageIOGimmickView.h b/src2/creaImageIOGimmickView.h index 389fd07..463b12a 100644 --- a/src2/creaImageIOGimmickView.h +++ b/src2/creaImageIOGimmickView.h @@ -20,9 +20,8 @@ #define GIMMICK_4D_IMAGE_SELECTION 4 #define NATIVE 0 -#define _2D 2 -#define _3D 3 - +#define _2D 2 +#define _3D 3 namespace creaImageIO { @@ -60,8 +59,12 @@ namespace creaImageIO /// Finalize virtual void Finalize(); - //Returns the maximal priority - int GetMaximalPriority(){return mReader.GetMaximalPriority();} + ///Returns the maximal priority + int GetMaximalPriority(){return mReader.GetMaximalPriority();} + + ///Adds the selected Images to the given vector + virtual void GetSelectedImagesInVector(std::vector& s, int dim) + { GimmickError("INTERNAL ERROR : GetSelectedImagesInVector not implemented"); } ///Adds the selected Images to the given vector and validates to see if they comply with the given parameter (4D) virtual void GetSelectedImages(std::vector& s, int dim) @@ -95,24 +98,29 @@ namespace creaImageIO virtual void SaveAs(const std::vector& filenames) { GimmickError("INTERNAL ERROR : SaveAs not implemented"); } - /// No selected image bool NoValidateSelected(); + ///Validates the dimension compliance of the images with the maximum and minimum given, and between their sizes bool ValidateSelected (tree::Node* sel, int min_dim, int max_dim); - + ///Reads the vector of images, builds it in the dimension required and returns them in the supplied vector. void ReadImagesNotThreaded(std::vector& s,std::vector files, int dim); - ///Requests the reading of an image with priority and index in the + + ///Reads the vector of images, builds it in the dimension required and returns them in the supplied vector. + void ReadImagesNotThreadedInVector(std::vector& s,std::vector files, int dim); + +///Requests the reading of an image with priority and index in the /// current selection (-1 if not in selection) //void RequestReading(tree::Node* n, int prio, int selection_index , ImagePointerHolder *p); void RequestReading(tree::Node* n, int prio, int selection_index , boost::shared_ptr p); - - + ///Obtains the message of the state std::string GetMessage(){return mMess;} - ///Obtains the message of the state + + ///Obtains the message of the state void SetMessage(std::string mess){mMess=mess;} + ///Resets the data of the extent and begins a new selection void ResetExtent(); @@ -129,6 +137,7 @@ namespace creaImageIO /// Updates the TreeView of given name from level l to bottom /// (calls the virtual method TreeView::UpdateLevel(l)) virtual void UpdateTreeViewLevel(const std::string&, int l); + // Multi-thread image reader callback void OnMultiThreadImageReaderEvent(const std::string& filename, MultiThreadImageReaderUser::EventType t, @@ -136,7 +145,6 @@ namespace creaImageIO vtkImageData* GetDefaultImage() { return mReader.GetImage(""); } - //============================================= typedef boost::signal ValidationSignalType; typedef ValidationSignalType::slot_function_type ValidationCallbackType; @@ -153,21 +161,22 @@ namespace creaImageIO void ConnectValidationObserver(ValidationCallbackType callback); //================================================================== - - void modifyValidationSignal(bool ivalid); private: - + /// Controller which manages the interaction with the model - boost::shared_ptr< Gimmick> mGimmick; + boost::shared_ptr< Gimmick> mGimmick; + /// The views TreeViewMapType mTreeViewMap; + /// The message that results from the validation std::string mMess; /// Multi-thread image reader MultiThreadImageReader mReader; + /// Internal type of image reading event /// If the image pointer is non null then the image is available (loaded) /// else it has been unloaded @@ -176,7 +185,7 @@ namespace creaImageIO ImageEventType( tree::Node* no = 0, int sel_index = -1) // ImagePointerHolder* ph= 0) -: node(no), index(sel_index){}//, pointerHolder(ph){} + : node(no), index(sel_index){}//, pointerHolder(ph){} ImageEventType(vtkImageData* im ) : image(im) {} tree::Node* node; @@ -188,26 +197,29 @@ namespace creaImageIO /// Map of images' names to ImageEventType /// Used to associated a filename to a the data of a request ImageEventTypeMap mImageEventMap; + // queue of image event typedef std::deque ImageEventQueueType; + //ImageEventQueueType mImageEventQueue; ///The current image extent boost::shared_ptr mImageExtent; + ///The validation signal ValidationSignalType mValidationSignal; + ///Boolean that determines if the selection is valid bool valid; + ///Boolean that determines if the reader has been started bool mReaderStarted; - + }; // EO class GimmickView //===================================================================== - - } // EO namespace creaImageIO // EOF diff --git a/src2/creaImageIOMultiThreadImageReader.cpp b/src2/creaImageIOMultiThreadImageReader.cpp index 65d2aab..9645f09 100644 --- a/src2/creaImageIOMultiThreadImageReader.cpp +++ b/src2/creaImageIOMultiThreadImageReader.cpp @@ -3,7 +3,6 @@ #include #include - namespace creaImageIO { @@ -48,7 +47,6 @@ namespace creaImageIO }; - //===================================================================== @@ -69,7 +67,7 @@ namespace creaImageIO boost::shared_ptr t(new ThreadedImageReader(this), ThreadedImageReader::deleter()); mThreadedImageReaderList.push_back(t); std::cout << " ===> Thread "< Total mem = "<Index()>=0) @@ -514,8 +509,6 @@ namespace creaImageIO // std::cout << "delete ok."<GetSelectedImages(s, dim); } + void GetSelectedImagesInVector(std::vector& s, int dim) + { + mView->GetSelectedImagesInVector(s, dim); + } + void OnSelectedImage(bool t); void AddImagesToDB(std::string dir); diff --git a/src2/creaImageIOWxGimmickReaderDialog.cpp b/src2/creaImageIOWxGimmickReaderDialog.cpp index 933a723..7fe2b41 100644 --- a/src2/creaImageIOWxGimmickReaderDialog.cpp +++ b/src2/creaImageIOWxGimmickReaderDialog.cpp @@ -14,8 +14,8 @@ namespace creaImageIO const wxPoint& pos, const wxSize& size, int min_dim, - int max_dim, - int output_dim, + int max_dim, + int output_dim, int threads) : wxDialog( parent, id, @@ -87,11 +87,9 @@ namespace creaImageIO } if (mGimmick) { - mGimmick->Finalize(); - //mGimmick->Finalize(); -// delete mGimmick; + mGimmick->Finalize(); + //delete mGimmick; } - } ///Callback method on a selection @@ -99,9 +97,6 @@ namespace creaImageIO { mOkButton->Enable(t); } - - - //================================================================ //BEGIN_EVENT_TABLE(WxGimmickReaderDialog, wxDialog) diff --git a/src2/creaImageIOWxGimmickReaderDialog.h b/src2/creaImageIOWxGimmickReaderDialog.h index 8137a73..4b3e6b6 100644 --- a/src2/creaImageIOWxGimmickReaderDialog.h +++ b/src2/creaImageIOWxGimmickReaderDialog.h @@ -34,7 +34,6 @@ namespace creaImageIO ~WxGimmickReaderDialog(); - //=============================================================================================== //Image Selection //=============================================================================================== @@ -42,10 +41,12 @@ namespace creaImageIO void GetSelectedImages(std::vector& s, int dim) { mView->GetSelectedImages(s, dim); } + void GetSelectedImagesInVector(std::vector& s, int dim) + { mView->GetSelectedImagesInVector(s, dim); } void GetSelectedFiles(std::vector& s) { mView->GetSelectedFiles(s); } - + void OnSelChanged(EventType& event); void OnContextualMenu(EventType& event); void OnMenuTest(wxCommandEvent& event); @@ -55,13 +56,12 @@ namespace creaImageIO // void OnButtonCancel(wxCommandEvent& event); private : - + boost::shared_ptr mGimmick; WxGimmickView* mView; wxButton* mOkButton; wxButton* mCancelButton; - enum { diff --git a/src2/creaImageIOWxGimmickView.cpp b/src2/creaImageIOWxGimmickView.cpp index 3b8d507..ddf4361 100644 --- a/src2/creaImageIOWxGimmickView.cpp +++ b/src2/creaImageIOWxGimmickView.cpp @@ -49,7 +49,7 @@ namespace creaImageIO TOOL_SETTINGS_ID = 7, TOOL_TOOLS_ID = 8, TOOL_CREATEDB_ID = 9, - TOOL_PACS_ID = 10 + TOOL_PACS_ID = 10 }; //====================================================================== @@ -117,23 +117,21 @@ namespace creaImageIO // Create the tool bar CreateToolBar(); - sizer->Add( mToolBar ,0, wxGROW ,0); + sizer->Add( mToolBar, 0, wxGROW, 0); // Split part below toolbar into notebook for views and panel // for preview, messages... mSplitter = new wxSplitterWindow( this , -1); - - + // Notebook mNotebook = new wxNotebook(mSplitter, - -1,wxDefaultPosition, wxDefaultSize, 0); + -1, wxDefaultPosition, wxDefaultSize, 0); //Gimmick mGimmick=gimmick; - - mSelectionMaxDimension= max_dim; - mSelectionMinDimension= min_dim; + mSelectionMaxDimension = max_dim; + mSelectionMinDimension = min_dim; // Create the views CreateTreeViews(); @@ -173,14 +171,14 @@ namespace creaImageIO mSplitter->SplitHorizontally( mNotebook, mBottomPanel, top_minsize); - sizer->Add( mSplitter,1,wxGROW ,0); + sizer->Add( mSplitter, 1, wxGROW, 0); mProgressDialog=0; SetSizer( sizer ); SetAutoLayout(true); Layout(); mListener=new Listener(); - mListener->ConnectObserver(boost::bind( &WxGimmickView::OnDriveMount , this, _1 ) ); + mListener->ConnectObserver(boost::bind( &WxGimmickView::OnDriveMount, this, _1 ) ); mListener->Create(); mListener->Run(); mListener->Pause(); @@ -280,7 +278,7 @@ namespace creaImageIO GimmickMessage(2,"Creating the tree view for '"<< name<<"'"< files; GetTreeViewMap()[crea::wx2std(mNotebook->GetPageText(mNotebook->GetSelection()))]->GetSelectedAsString(files); - ReadImagesNotThreaded(s,files,dim); + ReadImagesNotThreaded(s, files, dim); + } + + //====================================================================== + void WxGimmickView::GetSelectedImagesInVector(std::vector& s, int dim) + { + std::vector files; + GetTreeViewMap()[crea::wx2std(mNotebook->GetPageText(mNotebook->GetSelection()))]->GetSelectedAsString(files); + ReadImagesNotThreadedInVector(s, files, dim); } //====================================================================== @@ -325,17 +331,17 @@ namespace creaImageIO wxIcon icons[20]; // should correspond to Icon_xxx enum - icons[Icon_accept] = wxIcon(accept_xpm); - icons[Icon_add] = wxIcon(add_xpm); - icons[Icon_folder_down] = wxIcon(folder_down_xpm); - icons[Icon_page_down] = wxIcon(page_down_xpm); - icons[Icon_remove] = wxIcon(remove_xpm); - icons[Icon_database_add] = wxIcon(database_add_xpm); - icons[Icon_help] = wxIcon(help_xpm); - icons[Icon_synchronize] = wxIcon(synchronize_xpm); + icons[Icon_accept] = wxIcon(accept_xpm); + icons[Icon_add] = wxIcon(add_xpm); + icons[Icon_folder_down] = wxIcon(folder_down_xpm); + icons[Icon_page_down] = wxIcon(page_down_xpm); + icons[Icon_remove] = wxIcon(remove_xpm); + icons[Icon_database_add] = wxIcon(database_add_xpm); + icons[Icon_help] = wxIcon(help_xpm); + icons[Icon_synchronize] = wxIcon(synchronize_xpm); icons[Icon_create_database] = wxIcon(create_database_xpm); - icons[Icon_settings] = wxIcon(settings_xpm); - icons[Icon_tools] = wxIcon(tools_xpm); + icons[Icon_settings] = wxIcon(settings_xpm); + icons[Icon_tools] = wxIcon(tools_xpm); // unsigned int NbIcons = 8; // Make an image list containing small icons @@ -392,8 +398,8 @@ namespace creaImageIO 1000, this, wxPD_ELAPSED_TIME | - // wxPD_ESTIMATED_TIME | - // wxPD_REMAINING_TIME | + // wxPD_ESTIMATED_TIME | + // wxPD_REMAINING_TIME | wxPD_CAN_ABORT ); // TO DO : select the current tree handler @@ -424,15 +430,13 @@ namespace creaImageIO if (FD->ShowModal()==wxID_OK) { - - std::string dirname = wx2std (FD->GetPath()); bool recurse = isNeedRecursive(dirname); if (recurse) { - recurse = wxMessageBox(_T("Recurse into sub-directories ?"), _T("Scan directory"), wxYES_NO,this ) == wxYES ? true : false; + recurse = wxMessageBox(_T("Recurse into sub-directories ?"), _T("Scan directory"), wxYES_NO,this ) == wxYES ? true : false; } - + wxBusyCursor busy; wxString title(_T("Adding directory")); if (recurse) @@ -444,24 +448,23 @@ namespace creaImageIO this, wxPD_ELAPSED_TIME | wxPD_SMOOTH | - // wxPD_ESTIMATED_TIME | - // wxPD_REMAINING_TIME | + // wxPD_ESTIMATED_TIME | + // wxPD_REMAINING_TIME | wxPD_CAN_ABORT ); - + mCurrentDirectory = FD->GetPath(); mGimmick->AddDir(crea::wx2std(mNotebook->GetPageText(mNotebook->GetSelection())),dirname,recurse); mProgressDialog->Pulse(_T("Updating view...")); - + UpdateTreeViewLevel(crea::wx2std(mNotebook->GetPageText(mNotebook->GetSelection())),1); delete mProgressDialog; DisplayAddSummary(); - } mViewer->StartPlayer(); } - //================================================= + //================================================= // Determines number of files potentially to add to database int WxGimmickView::NumberFilesToAdd(const std::string &dirpath, bool recursive) { @@ -484,10 +487,9 @@ namespace creaImageIO } } return nb; - } - //================================================= + //================================================= // Test a directory to know if contains sub-directory to analyze bool WxGimmickView::isNeedRecursive(std::string i_name) { @@ -557,8 +559,6 @@ namespace creaImageIO ClearSelection(); }*/ ReadImageThreaded(sel); - - } //================================================== @@ -676,7 +676,7 @@ namespace creaImageIO mViewer->RefreshIfNecessary(); ResetExtent(); } - + //================================================= //================================================= @@ -689,7 +689,7 @@ namespace creaImageIO } //================================================= - + //================================================= void WxGimmickView::AddIgnoreFile(tree::Node* toRemove) { @@ -764,6 +764,7 @@ namespace creaImageIO dial->SetSizer(siz); dial->ShowModal(); } + //================================================= void WxGimmickView::OnImportExport(wxCommandEvent &Event) { @@ -857,7 +858,6 @@ namespace creaImageIO } } } - else { wxMessageBox(_T("One or both of the directory fields are empty"),_T("Empty Fields"),wxOK,this); @@ -866,9 +866,9 @@ namespace creaImageIO delete gimmickTools; #endif } - mViewer->StartPlayer(); } + //================================================= void WxGimmickView::CreateSettingsDialog(wxNotebook* nb, wxDialog* dial) @@ -1138,4 +1138,3 @@ namespace creaImageIO } // EO namespace creaImageIO - diff --git a/src2/creaImageIOWxGimmickView.h b/src2/creaImageIOWxGimmickView.h index 1325306..b16fdd0 100644 --- a/src2/creaImageIOWxGimmickView.h +++ b/src2/creaImageIOWxGimmickView.h @@ -34,7 +34,7 @@ namespace creaImageIO typedef int EventType; /// Ctor - WxGimmickView(boost::shared_ptr , + WxGimmickView(boost::shared_ptr, wxWindow *parent, const wxWindowID id, const wxPoint& pos, const wxSize& size, @@ -51,6 +51,7 @@ namespace creaImageIO /// Returns the selected Images so that they comply with the /// given parameter(4D) (overloaded from GimmickView) void GetSelectedImages(std::vector& s, int dim); + void GetSelectedImagesInVector(std::vector& s, int dim); /// Returns the images indicated by the filenames in the vector /// so that they comply with the given parameter(dim) @@ -141,18 +142,25 @@ namespace creaImageIO boost::shared_ptr mGimmick; Listener* mListener; + /// Callback for adding files void OnAddFiles(wxCommandEvent& event); + /// Callback for adding dir void OnAddDir(wxCommandEvent& event); + /// Callback for removing files void OnRemove(wxCommandEvent& event); + /// Callback for synchronization void OnSynchronize(wxCommandEvent& event); + /// Callback for settings edition void OnSettings(wxCommandEvent& event); + /// Callback for settings edition void OnTools(wxCommandEvent& event); + /// Callback for Import/Export images void OnImportExport(wxCommandEvent& event); @@ -192,29 +200,31 @@ namespace creaImageIO /// Progress dialog wxProgressDialog* mProgressDialog; + ///The selection's maximum dimension int mSelectionMaxDimension; + ///The selection's minimum dimension int mSelectionMinDimension; + ///Image previewer WxViewer* mViewer; + ///Currently Displayed Node tree::Node* mCurImageItemToShow; + //Pointer holders for images to be shown std::vector< boost::shared_ptr > pointers; - - + wxString mCurrentDirectory; DECLARE_EVENT_TABLE() }; // EO class WxGimmickView //===================================================================== - - - + } // EO namespace creaImageIO #endif // USE_WIDGETS // EOF -#endif +#endif diff --git a/src2/data/localdatabase_Descriptor.dscp b/src2/data/localdatabase_Descriptor.dscp index e794fd4..3694fcf 100644 --- a/src2/data/localdatabase_Descriptor.dscp +++ b/src2/data/localdatabase_Descriptor.dscp @@ -15,7 +15,7 @@ D 0x0008 0x0060 4 D 0x0008 0x1030 3 D 0x0008 0x103E 3 D 0x0008 0x0080 3 -D 0x0008 0x0081 3 +#D 0x0008 0x0081 3 #D 0x0008 0x1010 3 #D 0x0008 0x1048 3 #D 0x0008 0x1050 3 -- 2.45.1