From d6d576cd9cd4253dc661fb01c8943f99378eda41 Mon Sep 17 00:00:00 2001 From: Jonathan Grangien Date: Tue, 3 Jul 2018 14:24:33 -0400 Subject: [PATCH] Reset GUI and progress bar on different file selected --- modules/dataloader/operators/loader.cpp | 9 ++++----- modules/dataloader/operators/loader.h | 2 +- modules/kameleonvolume/kameleonvolumereader.cpp | 4 +++- .../components/DataLoader/PrepareUploadedData.jsx | 15 +++++++-------- .../components/common/ProgressBar/ProgressBar.jsx | 8 +++----- 5 files changed, 18 insertions(+), 20 deletions(-) diff --git a/modules/dataloader/operators/loader.cpp b/modules/dataloader/operators/loader.cpp index d79c92551c..6ca5ff86bf 100644 --- a/modules/dataloader/operators/loader.cpp +++ b/modules/dataloader/operators/loader.cpp @@ -95,7 +95,7 @@ Loader::Loader() , _volumeConversionProgress(VolumeConversionProgressInfo) { _uploadDataTrigger.onChange([this](){ - uploadData(); + selectData(); }); addProperty(_filePaths); @@ -103,16 +103,15 @@ Loader::Loader() addProperty(_volumeConversionProgress); } -// Rename select data -void Loader::uploadData() { +void Loader::selectData() { { std::thread t([&](){ nfdchar_t *outPath = NULL; nfdresult_t result = NFD_OpenDialog( "cdf", NULL, &outPath ); //TODO: handle different data types if ( outPath && result == NFD_OKAY ) { - LINFO("selected a file."); _filePaths = outPath; + _volumeConversionProgress = 0.0f; free(outPath); } else if ( result == NFD_CANCEL ) { @@ -120,7 +119,7 @@ void Loader::uploadData() { } else { std::string error = NFD_GetError(); - LINFO("Error: \n" + error ); + LINFO("Error: \n" + error); } }); diff --git a/modules/dataloader/operators/loader.h b/modules/dataloader/operators/loader.h index caba61f429..885e524845 100644 --- a/modules/dataloader/operators/loader.h +++ b/modules/dataloader/operators/loader.h @@ -48,7 +48,7 @@ class Loader : public PropertyOwner, public Operator { Loader(); // Select file data path - void uploadData(); + void selectData(); /** * Creates and adds trigger properties for data items in the internal directory diff --git a/modules/kameleonvolume/kameleonvolumereader.cpp b/modules/kameleonvolume/kameleonvolumereader.cpp index 861a3ea222..fafd2f858e 100644 --- a/modules/kameleonvolume/kameleonvolumereader.cpp +++ b/modules/kameleonvolume/kameleonvolumereader.cpp @@ -149,7 +149,7 @@ std::unique_ptr> KameleonVolumeReader::readFloatVolume( float* data = volume->data(); - size_t progressUpdateStep = volume->nCells() / 20; + size_t progressUpdateStep = volume->nCells() / 10; for (size_t index = 0; index < volume->nCells(); ++index) { const glm::vec3 coords = volume->indexToCoords(index); @@ -324,6 +324,8 @@ std::string KameleonVolumeReader::getVisUnit(const std::string& variable) const std::string KameleonVolumeReader::time() const { double start = ccmc::Time(simulationStart()).getEpoch(); + // std::cout << "time = " + std::to_string(start) << std::endl; + // Get elapsed time in seconds and convert to milliseconds. double elapsed = elapsedTime() * 1000; return ccmc::Time(start + elapsed).toString(); diff --git a/modules/webgui/web/src/components/DataLoader/PrepareUploadedData.jsx b/modules/webgui/web/src/components/DataLoader/PrepareUploadedData.jsx index 90ba1cb466..36a98b75e7 100644 --- a/modules/webgui/web/src/components/DataLoader/PrepareUploadedData.jsx +++ b/modules/webgui/web/src/components/DataLoader/PrepareUploadedData.jsx @@ -24,7 +24,7 @@ class PrepareUploadedData extends Component { this.state = { volumeProgress: 0, - uploadButtonClicked: false, + uploadButtonIsClicked: false, activated: false, dimensions: { x: 100, y: 100, z: 128 }, @@ -48,7 +48,10 @@ class PrepareUploadedData extends Component { const { filePaths } = this.props; if( filePaths !== prevProps.filePaths && filePaths !== undefined ) { - this.setState({ activated: true }); + this.setState({ + activated: true, + uploadButtonIsClicked: false + }); } this.subscribeToVolumeConversionProgress(); @@ -98,7 +101,7 @@ class PrepareUploadedData extends Component { } upload() { - this.setState({uploadButtonClicked: true}); + this.setState({uploadButtonIsClicked: true}); const { dimensions, variable, lowerDomainBounds, upperDomainBounds, rSquared } = this.state; let data = `\' @@ -143,11 +146,7 @@ class PrepareUploadedData extends Component { >>>>>> Run file dialog on separate thread and connect chosen file to GUI closeCallback={() => this.setState({ activated: false })}>
{getDirectoryLeaf(this.props.filePaths)} @@ -165,7 +164,7 @@ class PrepareUploadedData extends Component { - {this.state.uploadButtonClicked && ( + {this.state.uploadButtonIsClicked && ( { const { dots } = this.state; + if (dots.length < 3) { this.setState({dots: dots + '.'}); } else { @@ -85,16 +85,14 @@ class ProgressBar extends React.Component { }; ProgressBar.propTypes = { - label: PropTypes.string, + label: PropTypes.string.isRequired, initializingMsg: PropTypes.string, - progressPercent: PropTypes.number, + progressPercent: PropTypes.number.isRequired, colorFill: PropTypes.string, }; ProgressBar.defaultProps = { - label: '', initializingMsg: 'Working', - progressPercent: 0, colorFill: '#aff7c0', }