36 #include "vtkCamera.h"
62 mProperties = properties;
65 void DataViewPropertiesInteractor::addDataAction(QString uid, QWidget* parent)
67 DataPtr data = mServices->patient()->getData(uid);
69 QAction* action =
new QAction(
qstring_cast(data->getName()), parent);
71 action->setIcon(data->getIcon());
74 if (uid.contains(mLastDataActionUid))
76 action->setText(
" " + action->text());
81 mLastDataActionUid = uid;
85 action->setCheckable(
true);
86 std::vector<DataPtr> allVisible = mGroupData->getData(mProperties);
87 action->setChecked(std::count(allVisible.begin(), allVisible.end(), data));
88 connect(action, SIGNAL(triggered()),
this, SLOT(dataActionSlot()));
89 parent->addAction(action);
92 void DataViewPropertiesInteractor::dataActionSlot()
94 QAction* theAction =
static_cast<QAction*
>(sender());
98 QString uid = theAction->data().toString();
99 DataPtr data = mServices->patient()->getData(uid);
103 DataViewProperties old = mGroupData->getProperties(uid);
105 if (theAction->isChecked())
107 DataViewProperties props = old.addFlagsIn(mProperties);
108 mGroupData->setProperties(uid, props);
112 ActiveDataPtr activeData = mServices->patient()->getActiveData();
113 activeData->setActive(data);
118 DataViewProperties props = old.removeFlagsIn(mProperties);
119 mGroupData->setProperties(uid, props);
124 Navigation(mServices).centerToDataInViewGroup(mGroupData);
125 mGroupData->requestInitialize();
145 std::vector<DataPtr> data =
mGroupData->getData();
146 for (
unsigned i = 0; i < data.size(); ++i)
160 if (key.startsWith(
"View"))
172 contextMenu.exec(point);
178 connect(view.get(), SIGNAL(customContextMenuRequested(
const QPoint &)),
this, SLOT(
contextMenuSlot(
const QPoint &)));
184 return QStringList();
185 std::vector<DataPtr> data =
mGroupData->getData(properties);
188 for (
unsigned i = 0; i < data.size(); ++i)
193 QString line = data[i]->
getName();
195 ImagePtr image = boost::dynamic_pointer_cast<
Image>(data[i]);
198 if (image->getCropping())
199 line +=
" (cropped)";
200 if (!image->getAllClipPlanes().empty())
201 line +=
" (clipped)";
206 std::reverse(text.begin(), text.end());
213 QString annotationText;
214 if (
settings()->value(
"View/showOrientationAnnotation").value<bool>())
216 annotationText = QString(
"%1-%2")
220 mPlaneTypeText->setText(0, annotationText);
223 QString showDataText;
224 if (
settings()->value(
"View/showDataText").value<bool>())
228 mDataNameText->setText(0, showDataText);
229 mDataNameText->setFontSize(std::max(12, 22 - 2 * showDataText.size()));
236 mPlaneTypeText->addText(QColor(Qt::green),
"--",
Vector3D(0.98, 0.02, 0.0));
237 this->
getView()->addRep(mPlaneTypeText);
241 mDataNameText->addText(QColor(Qt::green),
"--",
Vector3D(0.02, 0.02, 0.0));
242 this->
getView()->addRep(mDataNameText);
QString qstring_cast(const T &val)
static DataViewProperties createSlice3D()
virtual QString getDataDescription()=0
boost::shared_ptr< class ViewGroupData > ViewGroupDataPtr
static DataViewProperties createDefault()
virtual void appendToContextMenu(QMenu &contextMenu)=0
boost::shared_ptr< class VisServices > VisServicesPtr
boost::shared_ptr< DataMetric > DataMetricPtr
boost::shared_ptr< class Image > ImagePtr
boost::shared_ptr< class ActiveData > ActiveDataPtr
DataViewPropertiesInteractorPtr mDataViewPropertiesInteractor
boost::shared_ptr< class View > ViewPtr
virtual void dataViewPropertiesChangedSlot(QString uid)=0
virtual void setViewGroup(ViewGroupDataPtr group)
boost::shared_ptr< class Data > DataPtr
void settingsChangedSlot(QString key)
virtual void videoSourceChangedSlot(QString uid)
virtual QString getName() const
ViewGroupDataPtr mGroupData
DataViewPropertiesInteractor(VisServicesPtr services, ViewGroupDataPtr groupData)
virtual ViewPtr getView()=0
static DataViewProperties createFull()
Settings * settings()
Shortcut for accessing the settings instance.
void dataViewPropertiesChanged(QString uid)
Eigen::Vector3d Vector3D
Vector3D is a representation of a point or vector in 3D.
Superclass for all data objects.
QStringList getAllDataNames(DataViewProperties properties) const
void contextMenuSlot(const QPoint &point)
static DisplayTextRepPtr New(const QString &uid="")
virtual void updateView()
DataViewPropertiesInteractorPtr mShow3DSlicesInteractor
void videoSourceChanged(QString uid)
void setDataViewProperties(DataViewProperties properties)
Base class for all Data Metrics.
virtual QString getViewDescription()=0
void connectContextMenu(ViewPtr view)
ViewWrapper(VisServicesPtr backend)