Skip to content

Recent updates to 3.0#28

Merged
Wei (Celia) Xu (celiafish) merged 18 commits into
NSLS2:3.0from
psavery:3.0
Jun 19, 2026
Merged

Recent updates to 3.0#28
Wei (Celia) Xu (celiafish) merged 18 commits into
NSLS2:3.0from
psavery:3.0

Conversation

@psavery

Copy link
Copy Markdown

This includes some recent fixes for bugs Aaron identified, as well as a few new features for the 3.0 branch.

For macos, it would appear *behind* the main window. We need to
flag it as a Qt Tool for it to appear on top.

Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
This warning is harmless and we should just ignore it.

Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
This is very valuable for actually seeing the plots.

Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Rather than at compile time. This allows us to bundle them later. For
the conda-forge packages, we don't want to bundle them, but for the DMG/MSI files,
we do.

Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
This rewires the deferred "insertion" operators (operators that are
being inserted somewhere in an existing pipeline) so that they visually
appear where they are going to actually be placed when they execute. Before,
they would appear as if a new branch was being formed, but then move to their
insertion location when applied.

When "Cancel" is clicked, or escape/x button so that the dialog is closed, the
connected operators are rewired according to their initial wiring (before the
operator was added), and the pipeline is not re-executed.

Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
This fixes a segfault.

Also fixes a re-entrant `processEvents()` call.

Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Previously, the visualization would just be gone.

Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
As seen from the CI

There are only a few warnings left on Windows, which look harmless but
may be difficult to fix.

Linux and Mac have no warnings.

Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
These are runtime warnings from deprecated functions. Just update them
to the recommended versions.

Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
These reflect the expected import paths in newer versions of scipy.
The older ones were deprecated.

Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
This allows volumes to be rendered that are greater than the
OpenGL limit (typically 2048 for many GPUs) by bricking them
together.

A single voxel of overlap is present between the bricks so that
no seams are displayed.

The bricking is only performed if the volume exceeds the limit
size, so all volume rendering is the same performance if it is
smaller than the limit.

Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
We have historically used `vtkDataArray::GetRange()/GetFiniteRange()`,
but this function is not thread-safe (due to its cache), and we have
been calling it in a background thread. I recently ran into a segmentation
fault that is probably unlikely, but we want to avoid all crashes.

So we must compute the histogram range ourselves to avoid all crashes.

The result is actually cached one level up so this shouldn't affect
performance.

Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Previously, if we failed to read an HDF5 file (perhaps because it
was open for writing in another process), it would kill the whole
table setup.

This makes several steps in the PyXRF source more robust to errors
like this.

Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Otherwise, the warning gets swallowed and it just shows up as "fail".

Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
This will help prevent flakiness in the CI

Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
The first issue was another case of calling OpenGL code from a background
thread instead of the GUI thread. To fix it, we added a `ThreadUtils.h`
file that provides helper functions, which allows us to consolidate
repeated code sections. Then we used this helper function in the new
volume block sections.

We also made `m_node` a QPointer and guard against it being nullptr.
That prevents another crash.

Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
They were just not appearing before. This was not an issue in the
packaging.

Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
@celiafish Wei (Celia) Xu (celiafish) merged commit 21bfb62 into NSLS2:3.0 Jun 19, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants