47 BaseWidget(parent,
"DataSelectWidget",
"DataSelectWidget"),
49 mVisualizationService(visualizationService),
50 mPatientModelService(patientModelService)
53 QHBoxLayout* layout =
new QHBoxLayout(
this);
55 layout->setSpacing(0);
60 QIcon(
":/icons/open_icon_library/eye.png.png"),
61 "Toggle show data in view",
"",
62 SLOT(toggleShowData()),
64 mToggleShowAction->setCheckable(
true);
66 toggleShowButton->setDefaultAction(mToggleShowAction);
70 "<html><h4>Permanently delete data.</h4><p>Press button twice to delete.<br>"
71 "Right-click after the first click to cancel.<p></html>"
73 SLOT(requestEraseData()),
75 mRemoveAction->setCheckable(
true);
77 connect(removeButton, SIGNAL(rightClick()),
this, SLOT(cancelRemovalSlot()));
78 removeButton->setDefaultAction(mRemoveAction);
82 gridLayout->setMargin(0);
83 gridLayout->setSpacing(0);
84 QHBoxLayout* lay =
new QHBoxLayout;
85 lay->addWidget(toggleShowButton);
86 lay->addWidget(removeButton);
87 gridLayout->addLayout(lay, row, 2);
90 layout->addWidget(widget);
91 layout->addWidget(toggleShowButton);
92 layout->addWidget(removeButton);
95 connect(mVisualizationService.get(), SIGNAL(activeViewChanged()),
this, SLOT(viewGroupChangedSlot()));
96 connect(mData.get(), SIGNAL(changed()),
this, SLOT(updateDataVisibility()));
98 this->setRemoveIcon();
99 this->viewGroupChangedSlot();
104 disconnect(mVisualizationService.get(), SIGNAL(activeViewChanged()),
this, SLOT(viewGroupChangedSlot()));
109 int groupIdx = mVisualizationService->getActiveGroup();
112 return mVisualizationService->getGroup(groupIdx);
115 void DataSelectWidget::viewGroupChangedSlot()
118 if (mCurrentViewGroup==group)
121 if (mCurrentViewGroup)
123 disconnect(mCurrentViewGroup.get(), SIGNAL(dataViewPropertiesChanged(QString)),
124 this, SLOT(updateDataVisibility()));
127 mCurrentViewGroup = group;
129 if (mCurrentViewGroup)
131 connect(mCurrentViewGroup.get(), SIGNAL(dataViewPropertiesChanged(QString)),
132 this, SLOT(updateDataVisibility()));
135 this->updateDataVisibility();
138 void DataSelectWidget::updateDataVisibility()
140 mToggleShowAction->setEnabled(mData->getData() && (mCurrentViewGroup!=0));
141 mRemoveAction->setEnabled(mData->getData() ?
true :
false);
143 bool visible =
false;
144 if (mData->getData())
146 std::vector<DataPtr> visibleData;
147 if (mCurrentViewGroup)
149 visibleData = mCurrentViewGroup->getData();
151 visible = std::count(visibleData.begin(), visibleData.end(), mData->getData());
153 mToggleShowAction->blockSignals(
true);
154 mToggleShowAction->setChecked(visible);
155 mToggleShowAction->blockSignals(
false);
156 this->cancelRemovalSlot();
162 return "<html></html>";
169 void DataSelectWidget::requestEraseData()
171 this->setRemoveIcon();
173 if (mRemoveAction->isChecked())
177 if (!mData->getData())
180 mPatientModelService->removeData(mData->getData()->getUid());
183 void DataSelectWidget::setRemoveIcon()
185 if (mRemoveAction->isChecked())
187 mRemoveAction->setIcon(QIcon(
":/icons/preset_remove.png"));
191 mRemoveAction->setIcon(QIcon(
":/icons/open_icon_library/edit-delete-2.png"));
195 void DataSelectWidget::setShowIcon()
197 if (mToggleShowAction->isChecked())
199 mToggleShowAction->setIcon(QIcon(
":/icons/open_icon_library/eye.png.png"));
203 mToggleShowAction->setIcon(QIcon(
":/icons/eye.png"));
210 void DataSelectWidget::cancelRemovalSlot()
212 mRemoveAction->blockSignals(
true);
213 mRemoveAction->setChecked(
false);
214 this->setRemoveIcon();
215 mRemoveAction->blockSignals(
false);
218 void DataSelectWidget::toggleShowData()
220 if (!mData->getData())
223 if (mToggleShowAction->isChecked())
225 mCurrentViewGroup->addData(mData->getData()->getUid());
229 mCurrentViewGroup->removeData(mData->getData()->getUid());
boost::shared_ptr< class ViewGroupData > ViewGroupDataPtr
boost::shared_ptr< class SelectDataStringPropertyBase > SelectDataStringPropertyBasePtr
boost::shared_ptr< class PatientModelService > PatientModelServicePtr