@@ -297,23 +297,6 @@ void DicomImageView::mousePressEvent(QMouseEvent* event)
emit Signal_ViewClicked ( this ) ;
}
//-----------------------------------------------------------------------------
void DicomImageView : : mouseMoveEvent ( QMouseEvent * event )
{
}
//-----------------------------------------------------------------------------
void DicomImageView : : mouseReleaseEvent ( QMouseEvent * event )
{
}
//-----------------------------------------------------------------------------
void DicomImageView : : mouseDoubleClickEvent ( QMouseEvent * event )
{
//Slot_viewDoubleclicked();
}
void DicomImageView : : Slot_viewDoubleclicked ( )
{
//emit Signal_ViewClicked(this);
@@ -673,11 +656,11 @@ bool DicomImageView::HasSeries()
{
return _Series ;
}
void DicomImageView : : Render ( )
{
if ( HasSeries ( ) )
{
//_Series->Render();
if ( _ImageViewer - > GetvtkCornerAnnotation ( ) ) {
_ImageViewer - > GetvtkCornerAnnotation ( ) - > SetMaximumFontSize ( FontSizeHelper : : getSize ( frameGeometry ( ) . size ( ) ) ) ;
}
@@ -693,20 +676,12 @@ void DicomImageView::CopyFromSeries(SeriesImageSet *series)
_Series = series ;
_ImageViewer - > SetInputData ( _Series - > GetData ( ) ) ;
//_CornerAnno = _ImageViewer->GetvtkCornerAnnotation();
_ImageViewer - > initCornerInfo ( series - > GetProperty ( ) ) ;
_ImageViewer - > setUpImageViewer ( ) ;
// vtkCamera* cam = _ImageViewer->GetRenderer()->GetActiveCamera();
// m_extent = m_image->GetDimensions()[0] * m_pSeriesTags->spacing[0] * 0.5;
// cam->SetParallelScale(m_extent);
//create some callbacks
//m_syncEventCallback = vtkCallbackCommand::New();
//m_syncEventCallback->SetCallback(syncEventFunc);
//m_syncEventCallback->SetClientData(this);
//以下是一些转接函数
//TODO: 考虑使用connect 替代 AddObserver,避免出现多种事件机制架构
ActorDraggableInteractorStyle * style = _ImageViewer - > GetInteractorStyle ( ) ;
style - > AddObserver ( vtkCommand : : EventIds : : EndPanEvent , this , & DicomImageView : : syncEventFunc ) ;
//style->AddObserver(vtkCommand::EventIds::EndRotateEvent, this, &DicomImageView::syncEventFunc);
@@ -750,6 +725,7 @@ void DicomImageView::doubleclickedEventCb(vtkObject* sender, unsigned long event
emit Signal_viewDoubleclicked ( this ) ;
}
//TODO: 重新匹配该函数, 部分逻辑可以直接保留, 需要注意Endxxx系列事件不是仅仅为了sync设计的
void DicomImageView : : syncEventFunc ( vtkObject * caller , unsigned long eid , void * calldata )
{
@@ -767,73 +743,37 @@ void DicomImageView::syncEventFunc(vtkObject*caller, unsigned long eid, void *ca
this - > Signal_SyncEvent ( this , VTKIS_IMAGE_ZOOM , calldata ) ;
break ;
case ( ActorDraggableInteractorStyle : : DraggableStyleEvents : : SlicedEvent ) :
//_Series->updateConerInfo(TOP_LEFT);
//this->m_scrl_active = false;
//_scrollBar->setValue(r[0]);
//r[1] = _SliceStep; //must after slot scrollValueChanged
//this->m_scrl_active = true;
//this->Signal_ViewChanged(this, VTKIS_IMAGE_SLICING, calldata);
_scrollBar - > setValue ( r [ 0 ] ) ;
break ;
default :
break ;
}
}
//
//void DicomImageView::syncPan(vtkObject*caller, unsigned long eid, void* clientdata, void *calldata)
//{
// DicomImageView *viewer = static_cast<DicomImageView*>(clientdata);
//
// //double level;
// //double width;
// //viewer->getWindowLevel(level, width);
// //viewer->Signal_WindowLevelChanged(viewer, level, width);
//}
void DicomImageView : : orphanizeSeriesInstance ( )
{
//this will be the last instance ,only serve for copy
_ImageViewer - > GetRenderer ( ) - > RemoveAllViewProps ( ) ;
this - > Render ( ) ;
}
void DicomImageView : : ResetView ( )
{
if ( HasSeries ( ) )
{
removeViewWithFusion ( ) ;
removeViewWithMeasure ( ) ;
orphanizeSeriesInstance ( ) ;
//_glWidt->update();
_ImageViewer - > GetRenderer ( ) - > RemoveAllViewProps ( ) ;
this - > Render ( ) ;
//_scrollBar = nullptr;
_ImageViewer - > Delete ( ) ;
_ImageViewer = nullptr ;
int count = _Series - > GetData ( ) - > GetReferenceCount ( ) ;
qDebug ( ) < < count ;
//don't delete series! ! ! It's belong to data cache
_Series = nullptr ;
_ScrollTriggerType = scrollScope : : TriggerType : : USER_TRIGGER ;
//_Slice = 0;
_PrevSlice = 0 ;
_SliceStep = 0 ;
}
_scrollBar - > setVisible ( false ) ;
if ( isCine )
{
_vcr_toolbar - > setVisible ( false ) ;
}
_vcr_toolbar - > setVisible ( false ) ;
}
int DicomImageView : : getSeriesNumber ( )
{
if ( HasSeries ( ) )
@@ -842,6 +782,7 @@ int DicomImageView::getSeriesNumber()
}
return - 1 ;
}
void DicomImageView : : updateCornerInfoAll ( )
{
if ( HasSeries ( ) )
@@ -849,13 +790,12 @@ void DicomImageView::updateCornerInfoAll()
_ImageViewer - > updateCornerInfoAll ( ) ;
}
}
void DicomImageView : : ShowMetaData ( )
{
QString fileName = QString : : fromLatin1 ( this - > _Series - > getCurImageName ( ) ) ;
if ( ! fileName . isEmpty ( ) ) {
//DcmFileFormat *dcmFile = new DcmFileFormat;
DcmFileFormat dcmFile ;
if ( ! dcmFile . loadFile ( fileName . toStdString ( ) ) . good ( ) )
{
@@ -865,14 +805,11 @@ void DicomImageView::ShowMetaData()
QMessageBox : : Ok ) ;
return ;
}
//DcmDataset* dataset = dcmFile.getDataset();
metaDataWindow * dicomWindow = new metaDataWindow ( & dcmFile ) ;
dicomWindow - > setAttribute ( Qt : : WA_DeleteOnClose ) ;
dicomWindow - > setWindowTitle ( " DICOM Tags ( " + fileName + " ) " ) ;
dicomWindow - > setWindowFilePath ( fileName ) ;
//dicomWindow->resize(dicomWindow->sizeHint());
dicomWindow - > resize ( USER_CONFIG : : DEFAULT_TAG_WINDOW_SIZE ) ;
//this->centralWidget->addSubWindow(dicomWindow);
dicomWindow - > show ( ) ;
}