otb merge requestshttps://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/merge_requests2019-09-19T09:15:24Zhttps://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/merge_requests/77Nodata extended filename2019-09-19T09:15:24Z@CSSI_OTBNodata extended filename### Summary
This branch supplies an extended filename for image writer to specify the nodata flags.
### Rationale
It is sometimes useful to override the nodata values automatically estimated by the pipeline.
### Implementation Detail...### Summary
This branch supplies an extended filename for image writer to specify the nodata flags.
### Rationale
It is sometimes useful to override the nodata values automatically estimated by the pipeline.
### Implementation Details
#### Classes and files
```
M Modules/IO/ExtendedFilename/include/otbExtendedFilenameToWriterOptions.h
M Modules/IO/ExtendedFilename/src/otbExtendedFilenameToWriterOptions.cxx
```
Support a new extended filename `nodata`.
```
M Modules/IO/IOGDAL/include/otbGDALImageIO.h
M Modules/IO/IOGDAL/src/otbGDALImageIO.cxx
M Modules/IO/ImageIO/include/otbImageFileWriter.txx
```
Handle user-defined `nodata` at writer level.
#### Applications
#### Tests
None
### Documentation
### Additional notes
### Copyright
The copyright owner is CS Systemes d'Information (CS SI) and has signed the ORFEO ToolBox Contributor License Agreement7.0.0https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/merge_requests/123New custom widgets for Float and Int parameters2019-09-19T09:15:10ZVictor PoughonNew custom widgets for Float and Int parameters### Summary
Rewrite numerical parameter widgets of otbgui to provide several improvements.
Before:
![before](/uploads/f5c55304242523725b5b912fd32e6c75/before.png)
After:
![after](/uploads/c6acf7d7d2d6bd1af68bef7a7d3234db/a...### Summary
Rewrite numerical parameter widgets of otbgui to provide several improvements.
Before:
![before](/uploads/f5c55304242523725b5b912fd32e6c75/before.png)
After:
![after](/uploads/c6acf7d7d2d6bd1af68bef7a7d3234db/after.png)
* Add a new "clear" button, visible only when applicable, inspired by QGIS's QgsSpinBox
* Remove the reset button
* Disable the scroll wheel event to avoid conflict with the parent QScrollArea
* Use variable length decimal input to avoid ugly trailing zeros.
* Fix the Qt issue where the user could not type digits because the spinbox was already full.
* Fix user value flag not reset when reset button is pressed
* Fix DoUpdateGUI spaghetti code (don't call it on children in QtWidgetGroupParameter)
* Don't highlight on select
* Only call application's DoUpdateParameters when editing is finished, not on every keystroke.
* Add `Qt5Svg` dependency to SuperBuild (needed to read the svg icon file).
### Rationale
Better otbgui UX.
### Implementation Details
#### Classes and files
```
M Modules/ThirdParty/Qt/CMakeLists.txt
M Modules/ThirdParty/Qt/otb-module-init.cmake
M Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetFloatParameter.h
M Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetIntParameter.h
M Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetModel.h
M Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetParameterBase.h
A Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetSpinBoxes.h
M Modules/Wrappers/QtWidget/src/CMakeLists.txt
M Modules/Wrappers/QtWidget/src/otbWrapperQtWidgetFloatParameter.cxx
A Modules/Wrappers/QtWidget/src/otbWrapperQtWidgetIcons.qrc
M Modules/Wrappers/QtWidget/src/otbWrapperQtWidgetIntParameter.cxx
M Modules/Wrappers/QtWidget/src/otbWrapperQtWidgetParameterBase.cxx
M Modules/Wrappers/QtWidget/src/otbWrapperQtWidgetParameterGroup.cxx
A Modules/Wrappers/QtWidget/src/otbWrapperQtWidgetSpinBoxes.cxx
M SuperBuild/CMake/External_qt5.cmake
A Utilities/Data/Icons/mIconClearText.svg
A Utilities/Data/Icons/mIconClearTextHover.svg
```
#### Applications
NA.
#### Tests
NA.
### Documentation
NA.
### Additional notes
* There is a significant amount of duplicated code between `otbWrapperQtWidgetIntParameter` and `otbWrapperQtWidgetFloatParameter`. This is not addressed by this MR. Unfortunately I think that the fix is more complex than simply moving the common code to a base class. Might be possible with multiple inheritance of an interface common to `QtWidgetSpinBox` and `QtWidgetDoubleSpinBox`.
* The new float widget does not show decimal points for float values that are also integers. This may confuse users who will not figure out that they are allowed to input non-integer values. Similarly, because the new LineEdit allows all input and only clears it when focus is lost, users might enter decimal values in int parameter, only to be confused why their input is being truncated.
* As a fundamental limitation of IEEE float, there will be loss of precision (and therefore weird GUI behavior) beyond 6 decimal digits in float inputs. It is not possible to go around this without also changing application engine's floats to doubles.
### Copyright
The copyright owner is _CNES_ and has signed the ORFEO ToolBox Contributor License Agreement7.0.0https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/merge_requests/124Document third party environment variables2019-09-19T09:00:13ZJulien MichelDocument third party environment variablesThis MR adds some documentation about environment variables from third parties, following a remark by @poughov.This MR adds some documentation about environment variables from third parties, following a remark by @poughov.7.0.0https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/merge_requests/125BUG: Fix missing QWidget parents2019-09-19T07:57:06ZVictor PoughonBUG: Fix missing QWidget parentsFix potential memory leak identified in !123
This branch starts off new_spinboxes. Let's see how gitlab handles that. We should probably merge new_spinboxes first, then merge widget_parents into developFix potential memory leak identified in !123
This branch starts off new_spinboxes. Let's see how gitlab handles that. We should probably merge new_spinboxes first, then merge widget_parents into develop7.0.0https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/merge_requests/126BUG: Remove workaround for QT bug 228292019-09-19T09:00:06ZVictor PoughonBUG: Remove workaround for QT bug 22829Seems fixed in QT5:
https://bugreports.qt.io/browse/QTBUG-22829
Can we remove it?
find . -type f -exec sed -i "/tag=QT4-boost-compatibility/d" {} \;Seems fixed in QT5:
https://bugreports.qt.io/browse/QTBUG-22829
Can we remove it?
find . -type f -exec sed -i "/tag=QT4-boost-compatibility/d" {} \;7.0.0https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/merge_requests/127COMP: fix gcc 7 'defined' warnings2019-09-19T09:15:01ZVictor PoughonCOMP: fix gcc 7 'defined' warningsSee issue #1632See issue #16327.0.0https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/merge_requests/129Update screenshots in Monteverdi Cookbook section with wrong RGB color compos...2018-06-12T09:11:29ZManuel GrizonnetUpdate screenshots in Monteverdi Cookbook section with wrong RGB color composition### Summary
Change screenshots in Monteverdi cookbook section with wrong color composition. Fix issue #1627.
### Copyright
The copyright owner is *CNES* and has signed the ORFEO ToolBox Contributor License Agreement### Summary
Change screenshots in Monteverdi cookbook section with wrong color composition. Fix issue #1627.
### Copyright
The copyright owner is *CNES* and has signed the ORFEO ToolBox Contributor License Agreement7.0.0Manuel GrizonnetManuel Grizonnethttps://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/merge_requests/130C++14: Replace ITK_NULLPTR by nullptr2019-09-19T07:54:05ZVictor PoughonC++14: Replace ITK_NULLPTR by nullptr```
find . -type f -exec sed -i "s/ITK_NULLPTR/nullptr/g" {} \;
``````
find . -type f -exec sed -i "s/ITK_NULLPTR/nullptr/g" {} \;
```7.0.0https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/merge_requests/131C++14: Replace ITK_OVERRIDE by override2019-09-19T07:53:53ZVictor PoughonC++14: Replace ITK_OVERRIDE by override`find . -type f -exec sed -i "s/ITK_OVERRIDE/override/g" {} \;`
Related to !130 !133`find . -type f -exec sed -i "s/ITK_OVERRIDE/override/g" {} \;`
Related to !130 !1337.0.0https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/merge_requests/132ENH: Add comments to MR template2019-09-19T07:53:13ZVictor PoughonENH: Add comments to MR template### Summary
Comment out sections of the merge request template that are sometimes not necessary. For example in the case of this MR.
### Rationale
Clearer MR descriptions for small patches.
### Implementation Details
#### Classes an...### Summary
Comment out sections of the merge request template that are sometimes not necessary. For example in the case of this MR.
### Rationale
Clearer MR descriptions for small patches.
### Implementation Details
#### Classes and files
<!--- Give an overview of the implementation: main changes made to classes, files and modules. Do not paste complete diff, as it is available in the merge request already. -->
#### Applications
<!--- Describe any changes made to existing applications, or new applications that have been added. -->
#### Tests
<!--- Describe the testing strategy for new features. -->
### Documentation
<!--- List or link documentation modifications that were made (doxygen, example, Software Guide, application documentation, CookBook). -->
### Additional notes
<!--- List remaining open issues if any, and additional notes. -->
### Copyright
The copyright owner is CNES and has signed the ORFEO ToolBox Contributor License Agreement7.0.0https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/merge_requests/133C++14: Replace comments by '= delete'2019-09-19T07:52:49ZVictor PoughonC++14: Replace comments by '= delete'### Summary
Use C++11 deleted functions `= delete;` syntax.
### Rationale
Stricter enforcement of non copy-ability. Note that this grep actually found a minor bug in `Modules/Adapters/OSSIMAdapters/src/otbRPCSolverAdapter.cxx` w...### Summary
Use C++11 deleted functions `= delete;` syntax.
### Rationale
Stricter enforcement of non copy-ability. Note that this grep actually found a minor bug in `Modules/Adapters/OSSIMAdapters/src/otbRPCSolverAdapter.cxx` which implements deleted functions.
### Implementation Details
#### Classes and files
#### Applications
#### Tests
### Documentation
### Additional notes
### Copyright
The copyright owner is CNES and has signed the ORFEO ToolBox Contributor License Agreement7.0.0https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/merge_requests/136DOC: add checklist to MR template2019-09-19T08:59:19ZVictor PoughonDOC: add checklist to MR template### Summary
* Add checklist to MR template (see below).
* Change title levels to make headers smaller
* Comment out implementation details sub titles
### Rationale
Avoid forgetting important checks before merging. Easier to re...### Summary
* Add checklist to MR template (see below).
* Change title levels to make headers smaller
* Comment out implementation details sub titles
### Rationale
Avoid forgetting important checks before merging. Easier to recall items of CONTRIBUTING.md
#### Implementation Details
<!---
##### Classes and files
Give an overview of the implementation: main changes made to classes, files and modules. Do not paste complete diff, as it is available in the merge request already.
-->
<!---
##### Applications
Describe any changes made to existing applications, or new applications that have been added.
-->
<!---
##### Tests
Describe the testing strategy for new features.
-->
<!---
##### Documentation
List or link documentation modifications that were made (doxygen, example, Software Guide, application documentation, CookBook).
-->
#### Additional notes
<!--- List remaining open issues if any, and additional notes. -->
#### Copyright
The copyright owner is CNES and has signed the ORFEO ToolBox Contributor License Agreement.
<hr>
***Check before merging:***
- All discussions are resolved
- At least 2 :thumbsup: votes from core developers, no :thumbsdown: vote.
- The feature branch is (reasonably) up-to-date with the base branch
- Dashboard is green
- Copyright owner has signed the ORFEO ToolBox Contributor License Agreement7.0.0https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/merge_requests/138REFAC: include-what-you-use in Modules/Core/2019-09-19T08:58:53ZVictor PoughonREFAC: include-what-you-use in Modules/Core/#### Summary
Fix includes in `Modules/Core`.
#### Rationale
See issue #1635.
#### Implementation Details
<!---
##### Classes and files
Give an overview of the implementation: main changes made to classes, files and modules. Do not p...#### Summary
Fix includes in `Modules/Core`.
#### Rationale
See issue #1635.
#### Implementation Details
<!---
##### Classes and files
Give an overview of the implementation: main changes made to classes, files and modules. Do not paste complete diff, as it is available in the merge request already.
-->
<!---
##### Applications
Describe any changes made to existing applications, or new applications that have been added.
-->
<!---
##### Tests
Describe the testing strategy for new features.
-->
<!---
##### Documentation
List or link documentation modifications that were made (doxygen, example, Software Guide, application documentation, CookBook).
-->
#### Additional notes
#### Copyright
The copyright owner is CNES and has signed the ORFEO ToolBox Contributor License Agreement.
<hr>
***Check before merging:***
- All discussions are resolved
- At least 2 :thumbsup: votes from core developers, no :thumbsdown: vote.
- The feature branch is (reasonably) up-to-date with the base branch
- Dashboard is green
- Copyright owner has signed the ORFEO ToolBox Contributor License Agreement7.0.0https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/merge_requests/139SuperBuild: Upgrade to OpenCV 3.4.12019-09-19T09:14:47ZVictor PoughonSuperBuild: Upgrade to OpenCV 3.4.1#### Summary
Upgrade SuperBuild to OpenCV 3.4.1
#### Rationale
See issue #1602.
#### Implementation Details
<!---
##### Classes and files
Give an overview of the implementation: main changes made to classes, files and modules. Do no...#### Summary
Upgrade SuperBuild to OpenCV 3.4.1
#### Rationale
See issue #1602.
#### Implementation Details
<!---
##### Classes and files
Give an overview of the implementation: main changes made to classes, files and modules. Do not paste complete diff, as it is available in the merge request already.
-->
<!---
##### Applications
Describe any changes made to existing applications, or new applications that have been added.
-->
<!---
##### Tests
Describe the testing strategy for new features.
-->
<!---
##### Documentation
List or link documentation modifications that were made (doxygen, example, Software Guide, application documentation, CookBook).
-->
#### Additional notes
<!--- List remaining open issues if any, and additional notes. -->
#### Copyright
The copyright owner is CNES and has signed the ORFEO ToolBox Contributor License Agreement.
<hr>
***Check before merging:***
- All discussions are resolved
- At least 2 :thumbsup: votes from core developers, no :thumbsdown: vote.
- The feature branch is (reasonably) up-to-date with the base branch
- Dashboard is green
- Copyright owner has signed the ORFEO ToolBox Contributor License Agreement7.0.0https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/merge_requests/140DOC: Minor fixes in Software Guide2019-09-19T07:51:11ZVictor PoughonDOC: Minor fixes in Software GuidePatch: a few typos and remove broken citationsPatch: a few typos and remove broken citations7.0.0https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/merge_requests/142BUG: fix issue #1639 Update UserValue flag in QtWidgetParameterList2019-09-19T08:58:22ZManuel GrizonnetBUG: fix issue #1639 Update UserValue flag in QtWidgetParameterListBUG: fix issue !1639 Update UserValue flag when a parameter is modified in QtWidgetParameterList widget
The QtWidgetParameterList widget should signal that an input parameter as been
modify by the user.Then, it set the UserValue flag...BUG: fix issue !1639 Update UserValue flag when a parameter is modified in QtWidgetParameterList widget
The QtWidgetParameterList widget should signal that an input parameter as been
modify by the user.Then, it set the UserValue flag from the corresponding parameter to
True.
It was spotted as the UserValue flag is used by the ParseApplication method used
to list parameter modified by the user in the GUI which is used to build the
corresponding command-line from the application GUI (displayed in the Log tab).7.0.0Manuel GrizonnetManuel Grizonnethttps://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/merge_requests/144Resolve "Warn otbcli user about unused parameters"2019-09-19T08:58:02ZJulien MichelResolve "Warn otbcli user about unused parameters"#### Summary
Solves #1621.
#### Rationale
In command-line launcher, check user parameters to detect parameters that will be ignored because their corresponding choice is not selected:
```
otbcli_ExtractROI -mode.radius.cx 2 -in ~/tm...#### Summary
Solves #1621.
#### Rationale
In command-line launcher, check user parameters to detect parameters that will be ignored because their corresponding choice is not selected:
```
otbcli_ExtractROI -mode.radius.cx 2 -in ~/tmp/tmp.tif -out ~/tmp/tmp2.tif uint16
WARNING: Parameter -mode.radius.cx will be ignored because -mode is standard. Consider adding -mode radius to application parameters.
```
#### Copyright
The copyright owner is *CNES* and has signed the ORFEO ToolBox Contributor License Agreement.
<hr>
***Check before merging:***
- All discussions are resolved
- At least 2 :thumbsup: votes from core developers, no :thumbsdown: vote.
- The feature branch is (reasonably) up-to-date with the base branch
- Dashboard is green
- Copyright owner has signed the ORFEO ToolBox Contributor License Agreement7.0.0https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/merge_requests/145Resolve "Debug mode without try {} catch(...) in otbApplicationLauncherComman...2019-09-19T09:28:59ZJulien MichelResolve "Debug mode without try {} catch(...) in otbApplicationLauncherCommandLine"#### Summary
Closes #1638
#### Copyright
The copyright owner is *CNES* and has signed the ORFEO ToolBox Contributor License Agreement.
<hr>
***Check before merging:***
- All discussions are resolved
- At least 2 :thumbsup: votes from...#### Summary
Closes #1638
#### Copyright
The copyright owner is *CNES* and has signed the ORFEO ToolBox Contributor License Agreement.
<hr>
***Check before merging:***
- All discussions are resolved
- At least 2 :thumbsup: votes from core developers, no :thumbsdown: vote.
- The feature branch is (reasonably) up-to-date with the base branch
- Dashboard is green
- Copyright owner has signed the ORFEO ToolBox Contributor License Agreement7.0.0https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/merge_requests/149ENH: display parameter description as tool tip for the QtWidgetBoolParameter2019-09-19T07:49:52ZManuel GrizonnetENH: display parameter description as tool tip for the QtWidgetBoolParameterAll Qt widgets in OTB GUI display the parameter description in the widget tooltip. This tooltip was missing in the new BoolParameter which replace the EmptyParameter (now deprecated)
See the screenshot with an example in the Classific...All Qt widgets in OTB GUI display the parameter description in the widget tooltip. This tooltip was missing in the new BoolParameter which replace the EmptyParameter (now deprecated)
See the screenshot with an example in the ClassificationMapRegularization for the 'onlyisolatedpixels' parameter:
![Capture_du_2018-06-21_17-19-32](/uploads/9df0b0f232bda52d667fbd29daca6aa1/Capture_du_2018-06-21_17-19-32.png)7.0.0Manuel GrizonnetManuel Grizonnethttps://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/merge_requests/150Refactor of otbWrapperApplication.h2019-09-19T08:57:43ZVictor PoughonRefactor of otbWrapperApplication.h#### Summary
The purpose of this MR is to remove implementation code from the header file `otbWrapperApplication.h`:
* Move implementation of simple methods to the cxx
* Replace `itkSetStringMacro` and `itkGetStringMacro` with sim...#### Summary
The purpose of this MR is to remove implementation code from the header file `otbWrapperApplication.h`:
* Move implementation of simple methods to the cxx
* Replace `itkSetStringMacro` and `itkGetStringMacro` with simple methods with the same type signature
* Move `otbGetParameterImageMacro` to the cxx
* Fix duplicated implementation of `Application::GetParameterImage` (previously in !143)
#### Rationale
Reduce OTB build time, see #1649.
#### Implementation Details
##### Classes and files
```
M Modules/Wrappers/ApplicationEngine/include/otbWrapperApplication.h
M Modules/Wrappers/ApplicationEngine/src/otbWrapperApplication.cxx
```
##### Tests
Does not affect tests.
##### Documentation
NA
##### Additional notes
`itkSetStringMacro` actually defines two methods: `virtual void Set##name (const char *_arg)` and `virtual void Set##name (const std::string & _arg)`. I have only added the string version. Do we need to also keep the `const char*` version?
#### Copyright
The copyright owner is CNES and has signed the ORFEO ToolBox Contributor License Agreement.
<hr>
***Check before merging:***
- All discussions are resolved
- At least 2 :thumbsup: votes from core developers, no :thumbsdown: vote.
- The feature branch is (reasonably) up-to-date with the base branch
- Dashboard is green
- Copyright owner has signed the ORFEO ToolBox Contributor License Agreement7.0.0Victor PoughonVictor Poughon