comparison Framework/Radiography/RadiographyWidget.cpp @ 1199:922d2e61aa5d

RadiograpyScene: can now remove any layer + new key wrappers for Delete/Backspace
author Alain Mazy <alain@mazy.be>
date Thu, 28 Nov 2019 18:28:15 +0100
parents a5f2a6b04a31
children 54cbffabdc45 9ee6b28f53e8
comparison
equal deleted inserted replaced
1197:a34ba19d2060 1199:922d2e61aa5d
182 { 182 {
183 hasSelection_ = true; 183 hasSelection_ = true;
184 selectedLayer_ = layer; 184 selectedLayer_ = layer;
185 } 185 }
186 186
187 void RadiographyWidget::ClearSelectedLayer()
188 {
189 hasSelection_ = false;
190 }
191
192 bool RadiographyWidget::SelectMaskLayer(size_t index)
193 {
194 std::vector<size_t> layerIndexes;
195 size_t count = 0;
196 scene_->GetLayersIndexes(layerIndexes);
197
198 for (size_t i = 0; i < layerIndexes.size(); ++i)
199 {
200 const RadiographyMaskLayer* maskLayer = dynamic_cast<const RadiographyMaskLayer*>(&(scene_->GetLayer(layerIndexes[i])));
201 if (maskLayer != NULL)
202 {
203 if (count == index)
204 {
205 Select(layerIndexes[i]);
206 return true;
207 }
208 count++;
209 }
210 }
211
212 return false;
213 }
214
215 bool RadiographyWidget::LookupSelectedLayer(size_t& layer) 187 bool RadiographyWidget::LookupSelectedLayer(size_t& layer)
216 { 188 {
217 if (hasSelection_) 189 if (hasSelection_)
218 { 190 {
219 layer = selectedLayer_; 191 layer = selectedLayer_;
242 void RadiographyWidget::OnLayerRemoved(const RadiographyScene::LayerRemovedMessage& message) 214 void RadiographyWidget::OnLayerRemoved(const RadiographyScene::LayerRemovedMessage& message)
243 { 215 {
244 size_t removedLayerIndex = message.GetLayerIndex(); 216 size_t removedLayerIndex = message.GetLayerIndex();
245 if (hasSelection_ && selectedLayer_ == removedLayerIndex) 217 if (hasSelection_ && selectedLayer_ == removedLayerIndex)
246 { 218 {
247 ClearSelectedLayer(); 219 Unselect();
248 } 220 }
221 NotifyContentChanged();
249 } 222 }
250 223
251 void RadiographyWidget::SetInvert(bool invert) 224 void RadiographyWidget::SetInvert(bool invert)
252 { 225 {
253 if (invert_ != invert) 226 if (invert_ != invert)