54 #include <QDesktopServices>
55 #include <QDesktopWidget>
57 #include <QFileDialog>
58 #include <QMessageBox>
60 #include <QPluginLoader>
64 #include <QScrollArea>
65 #include <QTextStream>
71 #include "itkImageFileReader.h"
77 #include "vtkPLYReader.h"
79 #include "vtkImageData.h"
80 #include "vtkImageReader2Factory.h"
81 #include "vtkImageReader2.h"
82 #include "vtkSmartPointer.h"
91 QMainWindow(iParent, iFlags), m_ViewToolBar(NULL), m_ModeToolBar(NULL),
92 m_TracesToolBar(NULL), m_TraceSettingsToolBar(NULL),
93 m_MaxNumberOfTraces(5000)
95 QString title(
"<*)0|00|0>< ~~ <*)0|00|0>< GoFigure ><0|00|0(*> ~~ ><0|00|0(*>");
98 setCorner(Qt::TopLeftCorner, Qt::LeftDockWidgetArea);
99 setCorner(Qt::BottomLeftCorner, Qt::LeftDockWidgetArea);
100 setCorner(Qt::TopRightCorner, Qt::RightDockWidgetArea);
101 setCorner(Qt::BottomRightCorner, Qt::RightDockWidgetArea);
105 QSize MaximumSize = screen.
size() * numberOfScreens;
108 QSize SizeIcon(22, 22);
115 this->statusbar->showMessage(
tr(
"No data") );
117 this->CentralTabWidget->clear();
118 this->CentralTabWidget->setTabsClosable(
true);
119 this->CentralTabWidget->setMovable(
true);
121 this->statusbar->addPermanentWidget(&
m_Bar);
153 this->actionExportMesh->setVisible(
false);
154 this->actionExportLineage->setVisible(
false);
155 this->actionExportTrack->setVisible(
false);
156 this->actionImportMesh->setVisible(
false);
157 this->actionImportTrack->setVisible(
false);
158 this->actionImportLineage->setVisible(
false);
167 SIGNAL( CheckForUpdatesDone(
QString,
bool) ),
223 SIGNAL( tabCloseRequested(
int) ),
227 SIGNAL( currentChanged(
int) ),
260 tr(
"Select Image"),
"",
261 tr(
"Images (*.png *.bmp *.jpg *.jpeg *.tiff *.tif *.mha *.mhd *.img *.lsm)")
277 tr(
"Select One Image from the Dataset"),
"",
278 tr(
"Images (*.png *.tif *.tiff *.jpg *.jpeg)")
295 tr(
"Error while trying to read this Megacatpure") );
305 int TimePoint = importer->GetOutput().get< m_TCoord >().begin()->m_TCoord;
308 importer->GetHeaderFilename(), TimePoint,
332 if ( extension.
compare(
"png", Qt::CaseInsensitive) == 0 )
339 if ( ( extension.
compare(
"tif", Qt::CaseInsensitive) == 0 )
340 || ( extension.
compare(
"tiff", Qt::CaseInsensitive) == 0 ) )
347 if ( ( extension.
compare(
"jpg", Qt::CaseInsensitive) == 0 )
348 || ( extension.
compare(
"jpeg", Qt::CaseInsensitive) == 0 ) )
355 std::cerr <<
"file not supported for megacapture!!!" << std::endl;
373 std::string temp =
"";
385 std::string Header_FileName;
388 Header_FileName, iFirst_Filename);
390 if ( file_container.size() == 0 )
392 std::cout <<
"GoFigureFileInfoHelperMultiIndexContainer empty ";
393 std::cout <<
"Debug: In " << __FILE__ <<
", line " << __LINE__;
394 std::cout << std::endl;
397 GoFigureFileInfoHelperMultiIndexContainer::iterator
398 temp_it = file_container.begin();
411 int TimePoint = file_container.get< m_TCoord >().begin()->m_TCoord;
415 filetype, Header_FileName, TimePoint,
418 QObject::connect( w3t, SIGNAL( UpdateBookmarkOpenActions(std::vector< QAction * > ) ),
419 this->
m_TabManager, SLOT( UpdateBookmarkMenu(std::vector< QAction * > ) ) );
426 this->menuBookmarks->setEnabled(
true);
439 #pragma omp sections nowait
520 typedef TrackContainer::MultiIndexContainerType::index< TraceID >::type::iterator
521 TrackContainerIterator;
523 TrackContainerIterator track_list_it = temp->
m_Container.get< TraceID >().begin();
524 TrackContainerIterator track_list_end = temp->
m_Container.get< TraceID >().end();
534 while ( track_list_it != track_list_end )
536 if ( track_list_it->Nodes )
542 track_list_it->TraceID);
561 std::string iFirst_FileName)
565 if ( iFirst_FileName.empty() )
567 std::string ImgSessionName =
577 if ( ofile_container.size() == 0 || !iFirst_FileName.empty() )
580 importer->SetFileName(iFirst_FileName);
589 tr(
"Error while trying to read this Megacatpure") );
590 return ofile_container;
593 ofile_container = importer->GetOutput();
594 ioHeader_Filename = importer->GetHeaderFilename();
600 return ofile_container;
629 int idx = this->CentralTabWidget->currentIndex();
654 if ( ext.
compare(
"lsm", Qt::CaseInsensitive) == 0 )
660 vtkImageReader2Factory *r_factory = vtkImageReader2Factory::New();
661 vtkImageReader2 * reader = r_factory->CreateImageReader2( iFile.
toAscii().
data() );
672 tr(
"Error while trying to read this file") );
676 vtkImageData *image = reader->GetOutput();
679 image->GetDimensions(dim);
681 if ( ( dim[0] != 1 ) && ( dim[1] != 1 ) && ( dim[2] != 1 ) )
702 m_LSMReader.back()->SetUpdateTimePoint(iTimePoint);
711 QString(
"Error while trying to read %1 at time %2").arg(iFile).arg(iTimePoint) );
718 int ImageDimensionality = 4;
725 ImageDimensionality = 2;
729 ImageDimensionality = 4;
734 ImageDimensionality = 4;
737 switch ( ImageDimensionality )
763 const std::string & iHeader,
764 const int & iTimePoint,
765 const bool & iUseDatabase)
819 for ( std::list< QAction * >::iterator
825 ( *list_it )->setEnabled(
true);
831 std::list< QGoTabElementBase::QGoDockWidgetStatusPair > dock_list = iT->
DockWidget();
833 for ( std::list< QGoTabElementBase::QGoDockWidgetStatusPair >::iterator
834 dck_it = dock_list.begin();
835 dck_it != dock_list.end();
838 if ( dck_it->first->m_Attached )
842 dck_it->second->setVisible(dck_it->first->m_Visibility);
845 int idx = this->CentralTabWidget->addTab( iT, iT->
windowTitle() );
852 this->CentralTabWidget->setCurrentIndex(idx);
876 this->menuView->setEnabled(
true);
877 this->menuFiltering->setEnabled(
true);
878 this->menuSegmentation->setEnabled(
true);
879 this->menuTools->setEnabled(
true);
880 this->menuMode->setEnabled(
true);
1004 QString url(
"mailto:gofigure2-developers@lists.sourceforge.net?subject=Bug Report&body=" );
1018 search_dir << app_up_dir +
"/Resources";
1020 search_dir << app_up_dir +
"/share/doc/gofigure2/Resources";
1022 search_dir << app_up_up_up_dir +
"/Resources";
1026 QFile file(
"BugEntryPath:BugEntry.txt");
1028 file.
open(QIODevice::ReadOnly);
1069 QString shownName =
"Untitled";
1095 QObject * plugin = loader.instance();
1120 std::cout <<
"This is not QGoImageFilterPlugin" << std::endl;
1129 QMenu *menu,
const char *member,
1132 std::list< GoFigure::TabDimensionType > dim_list;
1152 for ( std::list< GoFigure::TabDimensionType >::iterator it = dim_list.begin();
1153 it != dim_list.end();
1171 QWidget *w = this->CentralTabWidget->currentWidget();
1188 QWidget *w = this->CentralTabWidget->currentWidget();
1194 filter->SetInput( WnD->
GetImage() );
1207 QString shownName =
"Untitled";
1249 QAction *recentFileActions[MaxRecentFiles])
1255 if ( menu != this->menuDatabase_Files )
1257 QMutableStringListIterator i(list);
1258 while ( i.hasNext() )
1274 if ( j < list.
count() )
1280 recentFileActions[j]->setText(text);
1281 recentFileActions[j]->setData(list[j]);
1282 recentFileActions[j]->setVisible(
true);
1354 unsigned int NumberOfActionsIfSetUpDB = 1;
1356 unsigned int NumberOfCurrentActions = this->menuDatabase->actions().size();
1358 if ( NumberOfCurrentActions != NumberOfActionsIfSetUpDB )
1361 tr(
"Set Up Database"), this->menuDatabase);
1419 unsigned int maxNumberOfTraces =
1421 if(maxNumberOfTraces)
1467 tr(
"There was an error while trying to GoFigure2's update website!\n " \
1468 "Check your internet connection and try again later!") );
1474 if ( result.
compare(
tr(
"no-update\n"), Qt::CaseInsensitive) == 0 )
1479 tr(
"You have the lastest version!") );
1485 if ( result.
compare(
tr(
"update\n"), Qt::CaseInsensitive) == 0 )
1487 QMessageBox msgBox( QMessageBox::Information,
tr(
"GoFigure2 Updates"),
1488 tr(
"There is a new version of GoFigure2 available for download!") );
1491 msgBox.
addButton(
tr(
"Go to GoFigure2's website!"),
1492 QMessageBox::ActionRole);
1496 QMessageBox::ActionRole);
1502 QUrl address(
"http://sourceforge.net/projects/gofigure2/files/");