Mercurial > hg > orthanc-stone
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) |