Files
Jungfraujoch/viewer/JFJochViewerSidePanel.h

71 lines
2.2 KiB
C++

// SPDX-FileCopyrightText: 2025 Filip Leonarski, Paul Scherrer Institute <filip.leonarski@psi.ch>
// SPDX-License-Identifier: GPL-3.0-only
#ifndef JFJOCH_JFJOCHVIEWERSIDEPANEL_H
#define JFJOCH_JFJOCHVIEWERSIDEPANEL_H
#include <QLabel>
#include <QWidget>
#include <QLineEdit>
#include <QCheckBox>
#include "widgets/JFJochViewerImageROIStatistics.h"
#include "../reader/JFJochReader.h"
#include "charts/JFJochSimpleChartView.h"
#include "widgets/JFJochViewerSidePanelChart.h"
#include "widgets/ResolutionRingWidget.h"
class JFJochViewerSidePanel : public QWidget {
Q_OBJECT
std::optional<UnitCell> sample_cell;
QComboBox* calibrantCombo{nullptr}; // stores current calibrant selection
JFJochViewerSidePanelChart *chart = nullptr;
JFJochViewerImageROIStatistics *roi = nullptr;
ResolutionRingWidget *res_rings = nullptr;
UnitCell GetCalibrant() const;
signals:
void showSpots(bool input);
void setFeatureColor(QColor input);
void setSpotColor(QColor input);
void showHighestPixels(int32_t v);
void showSaturatedPixels(bool input);
void showPredictions(bool input);
void highlightIceRings(bool input);
void findBeamCenter(const UnitCell &input, bool guess);
void analyze();
void imageLoaded(std::shared_ptr<const JFJochReaderImage> image);
void ROIBoxConfigured(QRect box);
void ROICircleConfigured(double center_x, double center_y, double radius);
void AddROIToUserMask();
void SubtractROIFromUserMask();
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 SetROIBox(QRect box);
void SetROICircle(double x, double y, double radius);
void SetROIResult(ROIMessage msg);
void SetRings(QVector<float> v);
private slots:
void spotsToggled(bool input);
void predictionsToggled(bool input);
void highlightIceRingsToggled(bool input);
void saturatedPixelsToggled(bool input);
void findBeamCenterClicked();
void optimizeBeamCenterClicked();
void updateCalibrantList();
};
#endif //JFJOCH_JFJOCHVIEWERSIDEPANEL_H