Build Packages / Create release (push) Successful in 23s
Build Packages / build:rugnux-tgz (x86_64) (push) Successful in 10m6s
Build Packages / build:rugnux:aarch64 (cross) (push) Successful in 9m6s
Build Packages / build:viewer-tgz:cpu (push) Successful in 11m15s
Build Packages / build:viewer-tgz:cuda (push) Successful in 12m21s
Build Packages / build:windows:nocuda (push) Successful in 17m9s
Build Packages / build:windows:cuda (push) Successful in 19m49s
Build Packages / HDF5 consumer tests (DIALS, XDS) (push) Successful in 25m42s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 16m0s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 14m54s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 17m7s
Build Packages / build:rugnux:windows (push) Successful in 10m47s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 17m4s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 17m8s
Build Packages / Generate python client (push) Successful in 45s
Build Packages / Build documentation (push) Successful in 1m45s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 19m23s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 19m20s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 18m43s
Build Packages / build:rpm (rocky8) (push) Successful in 19m31s
Build Packages / build:rpm (rocky9) (push) Successful in 20m16s
Build Packages / Unit tests (push) Successful in 1h41m19s
* Fixed a `jfjoch_broker` crash during indexing: sorting no longer misbehaves on non-finite values, and GPU FFT indexer kernel launches are now error-checked. * rugnux needs about a third less peak memory to scale, merge and post-refine rotation data, with identical results. * `rugnux --model`: the placed coordinate file carries the space group its own coordinates obey, and says so when that is not the group the reflection files beside it carry. * `jfjoch_viewer`: fixes in the dataset plots, inspector and layout; spot markers lose their black outline by default (a checkbox under "Image features" restores it) and the highest-pixel markers are white boxes around the pixel. Reviewed-on: #80 Co-authored-by: Filip Leonarski <filip.leonarski@psi.ch>
75 lines
2.4 KiB
C++
75 lines
2.4 KiB
C++
// SPDX-FileCopyrightText: 2025 Filip Leonarski, Paul Scherrer Institute <filip.leonarski@psi.ch>
|
|
// SPDX-License-Identifier: GPL-3.0-only
|
|
|
|
#pragma once
|
|
|
|
#include <QLabel>
|
|
#include <QWidget>
|
|
#include <QLineEdit>
|
|
#include <QCheckBox>
|
|
|
|
#include "widgets/JFJochViewerROIList.h"
|
|
#include "../reader/JFJochReader.h"
|
|
#include "charts/JFJochSimpleChartView.h"
|
|
#include "widgets/ResolutionRingWidget.h"
|
|
|
|
class CollapsibleSection;
|
|
|
|
class JFJochViewerSidePanel : public QWidget {
|
|
Q_OBJECT
|
|
|
|
JFJochViewerROIList *roi_list = nullptr;
|
|
ResolutionRingWidget *res_rings = nullptr;
|
|
CollapsibleSection *roiSection = nullptr; // auto-expands when ROIs change
|
|
|
|
// Legend swatches for the two user-adjustable colours, kept so the legend tracks colour picks.
|
|
QLabel *legend_spot_swatch_ = nullptr; // non-indexed spots
|
|
QLabel *legend_indexed_swatch_ = nullptr; // indexed spots (feature colour)
|
|
|
|
signals:
|
|
void showSpots(bool input);
|
|
void setFeatureColor(QColor input);
|
|
void setSpotColor(QColor input);
|
|
void showHighestPixels(int32_t v);
|
|
void showSaturatedPixels(bool input);
|
|
void showBeamStop(bool input);
|
|
void showPredictions(bool input);
|
|
void highlightIceRings(bool input);
|
|
void hideUnindexedSpots(bool input);
|
|
void hideIceRingSpots(bool input);
|
|
void outlineSpots(bool input);
|
|
void showROILabels(bool input);
|
|
void showROIFill(bool input);
|
|
void roisChanged(ROIDefinition rois);
|
|
void selectedROIChanged(QString name);
|
|
void downloadROIs();
|
|
void uploadROIs();
|
|
void maskFromROI(QString name, bool add);
|
|
void findBeamCenter(QVector<float> ring_q, bool guess, bool refine_tilt);
|
|
void analyze();
|
|
|
|
void imageLoaded(std::shared_ptr<const JFJochReaderImage> image);
|
|
|
|
void writeStatusBar(QString string, int timeout_ms = 0);
|
|
|
|
void ringModeSet(JFJochDiffractionImage::RingMode mode);
|
|
void resRingsSet(QVector<float> v);
|
|
public:
|
|
JFJochViewerSidePanel(QWidget *parent);
|
|
public slots:
|
|
void loadImage(std::shared_ptr<const JFJochReaderImage> image);
|
|
void SetRings(QVector<float> v);
|
|
void selectROIInList(QString name);
|
|
|
|
private slots:
|
|
void spotsToggled(bool input);
|
|
void predictionsToggled(bool input);
|
|
void highlightIceRingsToggled(bool input);
|
|
void hideUnindexedSpotsToggled(bool input);
|
|
void hideIceRingSpotsToggled(bool input);
|
|
void saturatedPixelsToggled(bool input);
|
|
};
|
|
|
|
|
|
|