MCPcopy Create free account
hub / github.com/Tom94/tev / selectImage

Method selectImage

src/ImageViewer.cpp:1824–1926  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1822}
1823
1824void ImageViewer::selectImage(const shared_ptr<Image>& image, bool stopPlayback) {
1825 // Once the selected image has been updated, reflect that in the image info window.
1826 const auto imageInfoGuard = ScopeGuard{[this]() {
1827 if (mImageInfoWindow) {
1828 updateImageInfoWindow();
1829 }
1830 }};
1831
1832 if (stopPlayback) {
1833 mPlayButton->set_pushed(false);
1834 }
1835
1836 for (auto button : mCurrentImageButtons) {
1837 button->set_enabled(image != nullptr);
1838 }
1839
1840 if (!image) {
1841 auto& buttons = mImageButtonContainer->children();
1842 for (size_t i = 0; i < buttons.size(); ++i) {
1843 dynamic_cast<ImageButton*>(buttons[i])->setIsSelected(false);
1844 }
1845
1846 mCurrentImage = nullptr;
1847 mImageCanvas->setImage(nullptr);
1848
1849 // Clear group buttons
1850 while (mGroupButtonContainer->child_count() > 0) {
1851 mGroupButtonContainer->remove_child_at(mGroupButtonContainer->child_count() - 1);
1852 }
1853
1854 setImageWhiteLevel(DEFAULT_IMAGE_WHITE_LEVEL);
1855
1856 requestLayoutUpdate();
1857 return;
1858 }
1859
1860 const auto id = imageId(image).value_or(0);
1861
1862 // Don't do anything if the image that wants to be selected is not visible.
1863 if (!mImageButtonContainer->child_at((int)id)->visible()) {
1864 return;
1865 }
1866
1867 auto& buttons = mImageButtonContainer->children();
1868 for (size_t i = 0; i < buttons.size(); ++i) {
1869 dynamic_cast<ImageButton*>(buttons[i])->setIsSelected(i == id);
1870 }
1871
1872 mCurrentImage = image;
1873 mImageCanvas->setImage(mCurrentImage);
1874
1875 setImageWhiteLevel(mCurrentImage->whiteLevel());
1876
1877 // Clear group buttons
1878 while (mGroupButtonContainer->child_count() > 0) {
1879 mGroupButtonContainer->remove_child_at(mGroupButtonContainer->child_count() - 1);
1880 }
1881

Callers

nothing calls this directly

Calls 10

setIsSelectedMethod · 0.80
setImageMethod · 0.80
whiteLevelMethod · 0.80
channelGroupsMethod · 0.80
setIdMethod · 0.80
setSelectedCallbackMethod · 0.80
valueMethod · 0.80
isSelectedMethod · 0.80
fitImageToScreenMethod · 0.80
sizeMethod · 0.45

Tested by

no test coverage detected