Refactoring TOPPView
Description
Starting out with a simple change "get rid of Plot1DCanvas::isMzToXAxis()", turned out to be a huge daisy chain of changes, which cannot be done incrementally.
So this PR basically rewrites large parts of TOPPView.
It will remain a draft, which you can comment on, but I will pull out individual classes/components for smaller PRs.
Also, its not done yet...
Some old functionality still crashes, and some new functionality is not tested yet...
Overall, this PR reduces hackyness, eases understanding of control flow and sets us up to support more data types, e.g. Mobilograms, natively.
Highlights/Results (so far)
Native 2d ion mobilogram frame:

Native chromatogram projection on top:

Checklist
- [ ] Make sure that you are listed in the AUTHORS file
- [ ] Add relevant changes and new features to the CHANGELOG file
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] New and existing unit tests pass locally with my changes
- [ ] Updated or added python bindings for changed or new classes (Tick if no updates were necessary.)
How can I get additional information on failed tests during CI
Click to expand
If your PR is failing you can check out- The details of the action statuses at the end of the PR or the "Checks" tab.
- http://cdash.openms.de/index.php?project=OpenMS and look for your PR. Use the "Show filters" capability on the top right to search for your PR number. If you click in the column that lists the failed tests you will get detailed error messages.
Advanced commands (admins / reviewer only)
Click to expand
/reformat(experimental) applies the clang-format style changes as additional commit. Note: your branch must have a different name (e.g., yourrepo:feature/XYZ) than the receiving branch (e.g., OpenMS:develop). Otherwise, reformat fails to push.- setting the label "NoJenkins" will skip tests for this PR on jenkins (saves resources e.g., on edits that do not affect tests)
- commenting with
rebuild jenkinswill retrigger Jenkins-based CI builds
:warning: Note: Once you opened a PR try to minimize the number of pushes to it as every push will trigger CI (automated builds and test) and is rather heavy on our infrastructure (e.g., if several pushes per day are performed).
wow :)
https://cdash.openms.de/viewBuildError.php?buildid=82572
Those errors would benefit from a separate PR fixing it on develop
this should be merged at some point in the near future. Any further comments? splitting this into smaller, equally-sized chunks is probably not feasible (dependencies...), unfortunately
thanks for the review :) I'm still in the process of fixing a few compiler warnings on AppleClang... but should not be long before ready to merge.
@cbielow our failing tests here are the Sirius ones that are also failing on develop. Can we go ahead and merge this in?
are you sure? https://cdash.openms.de/viewBuildError.php?buildid=7637
Yes, these are the same set of tests that keep failing. Looking into it there seems to be an issue with our CI where it continues to run the tests after a linker error.
@cbielow
DefaultParamHandlerDocumenter.obj : error LNK2001: unresolved external symbol "public: virtual void * __cdecl OpenMS::MSExperiment::`scalar deleting destructor'(unsigned int)" (??_GMSExperiment@OpenMS@@UEAAPEAXI@Z) [E:\jenkins\ws\openms\PR\bldtst\9447518b\build\doc\DefaultParamHandlerDocumenter.vcxproj]
@cbielow
DefaultParamHandlerDocumenter.obj : error LNK2001: unresolved external symbol "public: virtual void * __cdecl OpenMS::MSExperiment::`scalar deleting destructor'(unsigned int)" (??_GMSExperiment@OpenMS@@UEAAPEAXI@Z) [E:\jenkins\ws\openms\PR\bldtst\9447518b\build\doc\DefaultParamHandlerDocumenter.vcxproj]
I tried to fix that in #6402, but it's still resilient :) Currently trying to build a VS2019, since this does not show up in my VS2022 build. But there are compile errors as well on VS2019 (I'm running an older version than our CI...). We'll get there... eventually :)
This is a compiler bug IMHO. But it should be fixed now. See https://stackoverflow.com/a/74235019/1913074
this should do it. Everything that fails is due to SIRIUS.
CI is still running but if that is the case I would say: merge